【问题标题】:Posting data back to a controller from a Partial View rendered by Ajax从 Ajax 呈现的局部视图将数据发送回控制器
【发布时间】:2011-09-17 21:35:54
【问题描述】:

我正在从 Ajax 调用返回部分视图:

$(document).ready(function () {
$("#itemSubmitter").click(function (e) {
    $.ajax({
        url: '@Url.Action("GetShippingAddress", "Order")',
        type: "POST",
        cache: false,
        success: function (data) {

            $("#shoppingAddressWrapper").html(data);

        }
    });
});
});

这会按预期返回视图。但是,Partial 有几个文本框,其中已经填充了数据。 #shoppingAddressWrapper 在表单标签内。

当我提交表单时,部分文本框中的值不是 Request.Params 集合的一部分。

这正常吗?您不能将输入框作为通过 Ajax 调用呈现的部分视图的一部分返回,然后将该数据发布到服务器并检索值吗?

C

【问题讨论】:

  • 你解决了这个问题吗,我也遇到了同样的问题,我已经开始赏金了。
  • 我认为模型绑定器将数据弄乱了。
  • 你在多个浏览器中试过这个吗?我想我记得以前遇到过这个......

标签: asp.net-mvc model-view-controller asp.net-mvc-partialview


【解决方案1】:

我找到了问题所在。 您需要清除文本框的模型状态。

if (Request.IsAjaxRequest())
    ModelState.Clear();

您可以只清除您需要的值,也可以清除所有值。否则,ajax 机制将插入旧值。

【讨论】:

  • Jim - 我已经解决了我的问题。让我尝试重新创建它并尝试您的解决方案,因为我知道这种情况会再次出现!谢谢。
猜你喜欢
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
相关资源
最近更新 更多