Asp.net mvc 2 如何在Asp.Net MVC中设置HiddenFieldFor的默认值

Asp.net mvc 2 如何在Asp.Net MVC中设置HiddenFieldFor的默认值,asp.net-mvc-2,html.hiddenfor,Asp.net Mvc 2,Html.hiddenfor,我使用HiddenFor与模型绑定,这是绑定到它的值。 我想将绑定值重置为零。我该怎么做 我试过了,但不起作用 <% foreach (var item in Model ) { %> <%: Html.HiddenFor(model => model.ID,new { @value="0"})%> <% } %> model.ID,新的{@value=“0”})%> 只需在控制器操作中将模型的ID属性设置为0您可以为此创建自己的助手扩展: pu

我使用HiddenFor与模型绑定,这是绑定到它的值。 我想将绑定值重置为零。我该怎么做

我试过了,但不起作用

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

model.ID,新的{@value=“0”})%>

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

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

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());
}
public static MvcHtmlString HiddenFor(此HtmlHelper帮助程序、表达式、对象值、对象htmlAttributes)
{
var propertyName=ExpressionHelper.GetExpressionText(表达式);
var输入=新标记生成器(“输入”);
input.MergeAttribute(“id”,helper.attributencode(helper.ViewData.TemplateInfo.getFullHtmlFieldDid(propertyName));
input.MergeAttribute(“name”,helper.attributencode(helper.ViewData.TemplateInfo.GetFullHtmlFieldName(propertyName));
input.MergeAttribute(“value”,value.ToString());
input.MergeAttribute(“类型”、“隐藏”);
input.MergeAttributes(新的RouteValueDictionary(htmlAttributes));
返回MvcHtmlString.Create(input.ToString());
}

理解。
K。但是我需要对我的模型的ID属性进行处理,这意味着我正在其他字段上使用它。在这种情况下,恐怕您必须手动生成HTML,而不使用
HiddenFor
帮助器。另外,为什么需要一个隐藏字段,其值总是设置为
0
?您是否有其他javascript代码稍后会修改该值?是的,我有javascript代码,该代码会更改复选框上的隐藏字段值。