0
我refferd這個帖子article stacoverflow 這second article sackoverflow不需要radioButtolListFor幫手 - MVC
和我使用RadioButtonListFor
public static MvcHtmlString RadioButtonListFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
IEnumerable<SelectListItem> listOfValues,
IDictionary<string, object> radioHtmlAttributes = null,
string ulClass = null)
{
ModelMetadata metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
if (radioHtmlAttributes == null)
radioHtmlAttributes = new RouteValueDictionary();
TagBuilder ulTag = new TagBuilder("ul");
if (!String.IsNullOrEmpty(ulClass))
ulTag.MergeAttribute("class", ulClass);
if (listOfValues != null)
{
// Create a radio button for each item in the list
foreach (SelectListItem item in listOfValues)
{
// Generate an id to be given to the radio button field
var id = string.Format("{0}_{1}", metaData.PropertyName, item.Value);
if (!radioHtmlAttributes.ContainsKey("id"))
radioHtmlAttributes.Add("id", id);
else
radioHtmlAttributes["id"] = id;
// Create and populate a radio button using the existing html helpers
var label = htmlHelper.Label(id, HttpUtility.HtmlEncode(item.Text));
var radio = htmlHelper.RadioButtonFor(expression, item.Value, radioHtmlAttributes).ToHtmlString();
// Create the html string that will be returned to the client
// e.g. <input data-val="true" data-val-required="You must select an option" id="TestRadio_1" name="TestRadio" type="radio" value="1" /><label for="TestRadio_1">Line1</label>
ulTag.InnerHtml += string.Format("<li>{0}{1}</li>", radio, label);
}
}
return MvcHtmlString.Create(ulTag.ToString(TagRenderMode.Normal));
}
我的問題是,單選按鈕是必需的,當我不檢查一個單選按鈕我有一個錯誤該字段是強制性的,我該如何禁用? (在我看來,型號我不使用dataAnnotation必填)
這是我的視圖模型的一部分:
public class RegistrationViewModel
{
#region country
public string Country { get; set; }
private string CountryLabel { get; set; }
public ConfigurationParamValue CountryParam { get; set; }
#endregion
#region civilty
public int Civility { get; set; }
public ConfigurationParamValue CivilityParam { get; set; }
public string CivilityLabel { get; set; }
public List<Civility> ListCivilitys { get; set; }
#endregion
}
,這是我的觀點的一部分:
<div id="city">
<div class="editor-label" style="@visibleCivility">
@Html.GetResource(Model.Category,Model.IsLocal,Constantes.CivilityLabel)
<div style="@mandatoryCivility">*</div>
</div>
<div class="editor-field">
@Html.RadioButtonListFor(m => m.Civility, new SelectList(Model.ListCivilitys,"ID","Name"))
@Html.ValidationMessageFor(model => model.Civility)
</div>
</div>
然而,您可以顯示模型類的定義嗎? – Andrei
您可能有必填字段驗證程序? –
我編輯的問題添加一些詳細的,我不使用所需的驗證程序 – user1428798