模态删除按钮不工作asp.net

时间:2013-03-29 19:34:17

标签: asp.net-mvc jquery

我正在制作一个存储客户的页面。客户可以拥有域名,联系人和工作。 每个联系人/域/作业都具有编辑/删除功能。

我正在使用MVC 4 ASP.NET c# 每次你想编辑/删除它时都会启动一个模态表格 联系人和域的删除视图除了显示的字段外完全相同。域删除功能在部分视图中不会触发任何内容。但是当它作为常规视图导航到URL中时它会成功。联系人删除在局部视图中正常工作。

@model STClient.Models.Domain

@{
    ViewBag.Title = "DeleteDomain";
}

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>

@using (Html.BeginForm("DeleteDomain", "Client", FormMethod.Post)) {
    <div class="modal-header">
        <h2>Are you sure you want to delete?</h2>
    </div>
    <div class="modal-body">
        <fieldset>
            <div class="display-label">
                <h3>
                    @Html.HiddenFor(model => model.server.ID)
                    @Html.HiddenFor(model => model.ID)
                    @Html.DisplayNameFor(model => model.Name):
                    @Html.DisplayFor(model => model.Name)
                </h3>
            </div>
            <div class="display-label">
                <h5>
                    @Html.DisplayNameFor(model => model.Registrar):
                    @Html.DisplayFor(model => model.Registrar)
                </h5>
            </div>
            <div class="display-label">
                <h5>
                    @Html.DisplayNameFor(model => model.PrimaryDNS):
                    @Html.DisplayFor(model => model.PrimaryDNS)
                </h5>
            </div>
            <div class ="display-label">
                <h5>
                    @Html.DisplayNameFor(model => model.SecondaryDNS):
                    @Html.DisplayFor(model => model.SecondaryDNS)
                </h5>
            </div>
        </fieldset>
    </div>
    <div class="modal-footer">
        <a class="btn" href="">Cancel</a>
        <input class="btn btn-danger" type ="submit" value="Delete" />
    </div>
}

这是在删除链接用于域的详细信息页面上。

<div class="modal fade" id="deleteDomain-modal"></div>


<script type="text/javascript">
    $(function () {
        $(".deleteDomain").click(function () {
            $.ajax({
                url: "/Client/DeleteDomain",
                type: "GET",
                data: {id: $(this).attr('id')},
                dataType: "html",
                success: function(e)
                {
                    $("#deleteDomain-modal").html(e);
                }
            });
            $("#deleteDomain-modal").modal();
        });
    });
    </script>

最后在客户端控制器中

    public ActionResult DeleteDomain(int id)
    {
        Domain domain = db.Domains.Find(id);
        if (domain == null)
        {
            HttpNotFound();
        }
        return PartialView(domain);
    }

    [HttpPost, ActionName("DeleteDomain")]
    public ActionResult DeleteDomainConfirmed(int id)
    {
        Domain domain = db.Domains.Find(id);
        Server server = db.Servers.Find(id);
        db.Domains.Remove(domain);
        db.SaveChanges();
        db.Servers.Remove(server);
        db.SaveChanges();
        LogDeleteDomain(domain, server);
        return RedirectToAction("Index");
    }

1 个答案:

答案 0 :(得分:0)

我想我遇到了类似的问题。原因是参数值是作为字符串发送而不是整数。我不得不施展价值。因此,在您的脚本代码中,您可能会尝试更改该行:

data: {id: $(this).attr('id')},

为:

data: {id: parseInt($(this).attr('id'))},

这解决了我的问题。