在MVC中删除部分视图

时间:2012-02-29 09:49:53

标签: asp.net-mvc-3

我有一个带有姓名,CreatedDate,地址等的视图。在地址部分,我有State,City等。我将此部分视为部分视图。

默认情况下,mainView中会有一个地址部分。我有一个按钮“AddAddress”。如果用户单击按钮,我想添加另一个地址部分(添加部分视图)。获取此部分视图后,应该有一个删除按钮来删除此部分视图。我没有使用Razor。

以下代码是我的Javascript删除我的地址。

        function deleteAddress(addressId, clientId) {
            var url1 = "/Client/DeleteAddress";
            if (confirm("Are you sure you want to delete this address?")) {
                var result = false;
                $.ajax({
                    url: url1,
                    type: 'POST',
                    async: false,
                    data: { AddressId: addressId, ClientId: clientId },
                    dataType: 'json',
                    success: function (data) {
                        result = data;
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        alert("XMLHttpRequest=" + XMLHttpRequest.responseText + "\ntextStatus=" + textStatus + "\nerrorThrown=" + errorThrown);
                    }
                });
                if (result) {
                }
            }
        }

以下代码在我的控制器中。

 [HttpPost]
 public JsonResult DeleteAddress(int AddressId, int ClientId)
    {
        if (AddressId != 0)
        {
            if (ClientId != 0)
            {
                ClientService.Client clientVuTemp = new ClientService.Client();
                clientVuTemp = (ClientService.ClientView)TempData["EditClientData"];

                clientVuTemp.Address.RemoveAt(AddressId);
                //soft delete
                clientVuTemp.Address[AddressId].IsActive = false;
                _clientSvc.InserOrUpdateClientAddresses(clientVuTemp.Address);
            }
            else
            {

            }
            return Json(true);
        }
        else
            return Json(false);
    }

1 个答案:

答案 0 :(得分:0)

在模型中,我们可以拥有类似IsAddAddressEnabled的属性,在AddAddress上单击,您可以将其设置为true,并在onclick on cancel上设置为false。

在视图中,您可以设置一个条件,

@if(Model.IsAddAddressEnabled)
{
    Html.Partail(....)
}