当前位置: 首页 > 面试题库 >

ASP.NET MVC 3 Ajax.BeginForm和Html.TextBoxFor不反映服务器上所做的更改

濮阳宏硕
2023-03-14
问题内容

我正在使用ASP.NET
MVC3中的Ajax.BeginForm帮助程序来提交一个表单,该表单将自己替换为服务器上设置的表单中的新值。但是,当我使用诸如Html.TextBoxFor之类的助手时,我得到的是提交的值,而不是我插入服务器模型中的值。

例如;
我在操作中将SomeValue设置为4,并在文本框中显示它。我将值更改为8,然后单击“提交”,并希望在文本框中将其更改回4,但是由于某种原因,它仍保持为8。但是,如果我不使用Html帮助程序而输出SomeValue,则会显示4。到底是怎么回事?

我的控制器:

public ActionResult Index(HomeModel model)
{
    model.SomeValue = 4;
    if (Request.IsAjaxRequest())
        return PartialView(model);
    return View(model);
}
public class HomeModel
{
    public int? SomeValue { get; set; }
}

我的视图(请不要在布局页面中包含所有需要的JavaScript):

<div id="ajaxtest">
@using(Ajax.BeginForm(new AjaxOptions{ InsertionMode = InsertionMode.Replace,
    UpdateTargetId = "ajaxtest", HttpMethod = "Post" })) {
    @Html.TextBoxFor(model => model.SomeValue)
    <input type="submit" value="Update" />
}
</div>

问题答案:

您可以使用

ModelState.Clear()

在您的控制器方法中,以使html助手使用您更改的模型。否则,他们使用表单提交中的值

看看:Asp.net MVC
ModelState.Clear



 类似资料:
  • 这是我的不和谐自我机器人代码。它将首先检查令牌是否有效,如果有效,它将登录到该令牌。根据client.event()on_ready,登录后不会发生任何事情(应该打印状态:在线)。我想我的小命令也坏了请帮忙。

  • 我有一个正在运行的Spring Boot应用程序,因此,如果我对应用程序的配置(application.properties或pom.xml中的更改)进行一些更改,这些更改会在运行时反映出来,而无需重新构建应用程序并再次部署它,那么有什么方法?

  • 我正在遵循官方的react native文档来安装和运行示例react native应用程序。我创建了一个示例应用程序,方法是: app.js 然后我移除并保存以检查编辑器上的更改是否反映在移动应用程序上。但我还没有看到世博应用程序有任何变化。我甚至打开了android手机上的chrome浏览器,输入了ip地址,仍然没有变化。

  • nestjs 一个服务如何既做微服务也做http服务器? 比如一个接口既可以做 http 又可以做微服务.不想再写一个专门的http 服务器. 接口是否可以相同?

  • 我想将setlocale与“es_es”一起使用。它返回false,但其他语言(如“de_de”)工作正常。 所以我在服务器上检查了“locale-a”(Red Hat 4.4.6-4)。它在名单上。当我在PHP中使用以下代码时,它不在列表中: 它返回不同的结果然后服务器。任何想法,如何添加es在PHP中使用语言环境? 我正在使用Apache2.2。15