获得Ajax响应后,无法在ASP.net MVC中更新Label.HiddenFor字段

时间:2013-10-26 06:54:13

标签: asp.net-mvc asp.net-mvc-ajax

在我的ASP.net MVC应用程序中。我正面临着一个问题而且真的在努力。

我在视图中有一个编辑表单,因为我有一个标签,定义为:

<% using (Ajax.BeginForm("AjaxEdit", "Home", new AjaxOptions { OnSuccess = "Success", OnFailure = "Failed",UpdateTargetId = "ChangedOn"}))
                   { %>

           <%=Html.HiddenFor(Model => Model.ChangedOn)%>
           <%:Html.DisplayFor(Model => Model.ChangedOn)%>

点击提交按钮后,调用ajax请求并发回服务器响应。

但是,问题是我无法在收到服务器响应的情况下更新该隐藏字段。

问题是因为它是隐藏式输入。 有没有其他方法可以做到这一点..请帮助。

3 个答案:

答案 0 :(得分:0)

尝试使用隐藏输入的html标记来查看会发生什么:

 <input id="ChangedOnId" name="ChangedOn" type="hidden" value="<%=Model.ChangedOn%>">

答案 1 :(得分:0)

如果要更改隐藏输入的值,可以执行以下操作:

$("#ChangedOn").val(yourValue);

如果你想改变它的文字更改DisplayFor,你可以选择它。 我认为DisplayFor只会呈现您属性的纯文本

答案 2 :(得分:0)

隐藏的字段存储在ModelState中

您可以将其删除

ModelState.Remove(nameof(Model.ChangedOn));