【问题标题】:How can i set Default value for HiddenFieldFor In Asp.Net MVC如何在 Asp.Net MVC 中设置 HiddenFieldFor 的默认值
【发布时间】:2011-03-30 23:19:08
【问题描述】:

我正在使用 HiddenFor 和模型绑定,这是绑定值。 我想将绑定的值重置为零。我该怎么做?

我试过了,但它不起作用......

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

【问题讨论】:

    标签: asp.net-mvc-2 html.hiddenfor


    【解决方案1】:

    您可以为此创建自己的辅助扩展:

    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】:

      只需在控制器操作中将模型的ID 属性设置为0

      【讨论】:

      • K 理解。但我需要对模型的 ID 属性进行处理,这意味着我也在其他字段上使用它。
      • 在这种情况下,恐怕您将不得不手动生成 HTML,而不使用 HiddenFor 助手。另外,为什么您需要一个隐藏字段,其值始终设置为0?您是否还有其他一些稍后会修改该值的 javascript 代码?
      • 是的,我有 javascript 代码可以更改复选框检查时的隐藏字段值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      • 2013-01-03
      相关资源
      最近更新 更多