Как я могу установить значение по умолчанию для HiddenFieldFor в Asp.Net MVC - PullRequest
4 голосов
/ 17 августа 2010

Я использую HiddenFor с привязкой модели, которая является значением привязки к ней. Я хочу сбросить привязанное значение к нулю. Как я могу это сделать?

Я попробовал это, но это не работает ...

<% foreach (var item in Model ) { %>
 <%: Html.HiddenFor(model => model.ID,new { @value="0"})%>
 <% } %>

Ответы [ 2 ]

10 голосов
/ 17 августа 2010

Вы можете создать собственное вспомогательное расширение для этого:

public static MvcHtmlString HiddenFor<TModel, TProperty>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TProperty>> expression, object value, object htmlAttributes)
{
    var propertyName = ExpressionHelper.GetExpressionText(expression);

    var input = new TagBuilder("input");
    input.MergeAttribute("id", helper.AttributeEncode(helper.ViewData.TemplateInfo.GetFullHtmlFieldId(propertyName)));
    input.MergeAttribute("name", helper.AttributeEncode(helper.ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName)));
    input.MergeAttribute("value", value.ToString());
    input.MergeAttribute("type", "hidden");
    input.MergeAttributes(new RouteValueDictionary(htmlAttributes));

    return MvcHtmlString.Create(input.ToString());
}
2 голосов
/ 17 августа 2010

Просто установите свойство ID вашей модели в действии контроллера на 0.

...