如何重置MVC客户端模型

时间:2017-03-08 07:38:25

标签: jquery asp.net-mvc asp.net-mvc-4 checkbox

我的主视图有两个局部视图,其中模态一个作为主地址,另一个作为传递地址。我在主要地址下面有一个复选框(这也是我的送货地址),检查送货地址应该从数据库中删除,也不应该在视图中显示。

目前我面临的问题是,如果用户在用户之前已经拥有送达地址时点击复选框,则会从数据库中删除送达地址以及隐藏送达部分视图。我正在使用jquery来触发从数据库中删除的操作并隐藏传递部分视图。以下是相同的代码:

$('input[type="checkbox"]').on('change', function (e) {
        if (e.target.checked) {
            // call this if checkbox is checked
            $(document).ready(function () {
                $('#modal-delivery').modal('show');
            });
        }
        else
        {
            // call this if checkbox is unchecked
            $.post('@Url.Action("DeliveryAddressUpdate", "Address")',
           { data: address, isDeliveryAddressDeleted: true
           });
            $(document).ready(function () {
            //clear the modal here before showing the view
                $('#delivery-address').show().find('.btn-edit').click();

                //$('button[type="button"]').click();
            });
        }
    });

我在控制器中有一个动作,它将由上面的jquery触发,类似于:

[HttpPost]
public ActionResult DeliveryAddressUpdate(AddressModel data, bool isDeliveryAddressDeleted)
{
     UpdateDeliveryAddress(data, isDeliveryAddressDeleted);
}

现在,当我取消选中该复选框时,它将再次触发相同的jquery并运行其中的else部分。在显示递送地址时,由于某种原因,它仍将保留先前的递送地址值。当我刷新页面时,它显示空白的交付字段。关于这个原因的任何想法。

我试过ModelState.Clear(),但它对我不起作用。

任何帮助将不胜感激。

0 个答案:

没有答案