Ich habe eine radiobuttonlistFor benutzerdefinierten Adapter funktioniert, aber wenn ein Benutzer Formular Daten zurückgesetzt wird, und keine Daten zuvor übermittelt wurde, ist eine der Optionsfelder (die erste) immer vorgewählt, ich will das vermeiden, wie kann ich das erreichen?ASP.NET MVC RadioButtonListFor ist immer voreingestellt
@Html.RadioButtonForSelectList(model => model.ViewModelForThingCreate.ThingTypeID, Model.ViewModelForCarCreate.CarTypeSelectList)
und:
public static MvcHtmlString RadioButtonForSelectList<TModel, TProperty>(this HtmlHelper<TModel> HTMLHelper,Expression<Func<TModel, TProperty>> Expression, IEnumerable<SelectListItem> ListOfValues)
{
var MetaData = ModelMetadata.FromLambdaExpression(Expression, HTMLHelper.ViewData);
var SB = new StringBuilder();
if (ListOfValues != null)
{
foreach (SelectListItem Item in ListOfValues)
{
var ID = string.Format("{0}_{1}", MetaData.PropertyName, Item.Value);
var Radio = HTMLHelper.RadioButtonFor(Expression, Item.Value, new { id = ID }).ToHtmlString();
SB.AppendFormat("<label class=\"radio inline\" for=\"{0}\">{1} {2}</label>", ID, Radio, HttpUtility.HtmlEncode(Item.Text));
}
}
return MvcHtmlString.Create(SB.ToString());
}
Dank!
, wie fühlen Sie sich über js verwenden? –
Das ist immer der letzte Ausweg ... – Baconbeastnz
Schauen Sie sich diese Slick-Radio-Taste Helfer von Darin http://Stackoverflow.com/questions/9553408/custom-helper-for-generating-html-tags-for-radio-button-and -associated-label –