Ajax 输入(由html助手生成)受POST数据影响是否正常?

Ajax 输入(由html助手生成)受POST数据影响是否正常?,ajax,asp.net-mvc,post,view,Ajax,Asp.net Mvc,Post,View,在MVC应用程序中,我们实现了一个迷你论坛。这个论坛上的新帖子是ajaxed。AJAX POST操作要么返回响应表单部分视图,要么返回新的POST html和表单html作为JSON。 新的帖子和表单都是通过视图呈现的。为表单提供的模型有一些空值,但相应的输入存储从POST数据中获取的值。我验证了生成的数据,以确保它不是由浏览器完成的。输入由html帮助程序(如TextBoxFor)生成 所以我的问题是,这在MVC中是正常的行为吗?如果是,那么我该如何使这些输入具有空/空值,甚至某些特定值?当调

在MVC应用程序中,我们实现了一个迷你论坛。这个论坛上的新帖子是ajaxed。AJAX POST操作要么返回响应表单部分视图,要么返回新的POST html和表单html作为JSON。 新的帖子和表单都是通过视图呈现的。为表单提供的模型有一些空值,但相应的输入存储从POST数据中获取的值。我验证了生成的数据,以确保它不是由浏览器完成的。输入由html帮助程序(如TextBoxFor)生成

所以我的问题是,这在MVC中是正常的行为吗?如果是,那么我该如何使这些输入具有空/空值,甚至某些特定值?当调试模型中的值时,它们与我设置的值完全相同,这是null,但是对于任何值都会发生同样的情况,但是这个模型的输入仍然保留从POST数据中获取的值

我测试了如何使用良好的旧PartialView,而不是将html呈现为字符串并通过JSON返回,但结果完全相同,因此我用于呈现这些视图的方法应该与问题无关

我遇到了一个问题:

但从我在应用程序中查看的情况来看,POST数据实际上并没有存储在ViewData中,OP也不是AJAXing数据,因此重定向在他的情况下更有意义。

我遇到了这个问题,它详细解释了这个问题,并展示了解决方法

总而言之。是的,这是htmlHelpers在POST操作期间的正常行为。要防止它,您可以运行ModelState.Clear;在您的后期操作中,最好在返回\渲染视图之前。也可以选择使用ModelState.RemovePropName删除一个字段;其中PropName是不希望从POST数据传递的模型属性的名称