将数据从Ajax呈现的部分视图发回控制器

时间:2011-09-17 21:35:54

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

我从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

1 个答案:

答案 0 :(得分:1)

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

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

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