如何在bootsrap Modal asp.net mvc中使用Edit

时间:2016-03-18 11:22:32

标签: javascript c# jquery asp.net-mvc twitter-bootstrap

我正在使用asp.net mvc我想使用bootsrap模式更新数据库中的数据 和部分观点。 问题是,当我点击链接以显示模型它不工作时(它显示一个空的模态)

这是我的代码:

     //the Controller Action
         public ActionResult Edit(int id = 0)
        {
            Tache tache = db.Taches.Find(id);


            if (tache == null)
            {
                return HttpNotFound();
            }
            return PartialView("PartialEdit", tache);
        }



   // the index View that contain the link and the modal definition :

         <td>
         <a data-modal='' href='"/Tache/edit/"+@item.TacheId' data-id="@item.TacheId" id="@item.TacheId " title=" edit">Edit </a> |
          @Html.ActionLink("Delete", "Delete", new { id = item.TacheId })
           </td>

<div id='myModal' class='modal fade'>
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div id='myModalContent'></div>
        </div>
    </div>
</div>

//这是部分视图

                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Nouvelle Tâche</h4>
                </div>

    @using (Html.BeginForm("Create", "Tache", FormMethod.Post, new { @id = "formId" }))
    {
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)





    @Html.HiddenFor(model => model.TacheId)
                <div class="modal-body">




        //Some  forms in inputs
                    <div class="row">

//最后我的javascript:

           $(function () {
    $.ajaxSetup({ cache: false });
    $("a[data-modal]").on("click", function (e) {
        $('#myModalContent').load(this.href, function () {
            $('#myModal').modal({
                keyboard: true
            }, 'show');
            bindForm(this);
        });
        return false;
    });
     });

      function bindForm(dialog) {
    $('form', dialog).submit(function () {
        $('#progress').show();
        $.ajax({
            url: this.action,
            type: this.method,
            data: $(this).serialize(),
            success: function (result) {
                if (result.success) {
                    $('#myModal').modal('hide');
                    $('#progress').hide();
                    location.reload();
                } else {
                    $('#progress').hide();
                    $('#myModalContent').html(result);
                    bindForm();
                }
            }
        });
        return false;
    });
    }

我认为这个问题可能来自那些缺少他们的东西的链接!! 但我不确定 如果有人可以帮助我,这将是伟大的 想你

1 个答案:

答案 0 :(得分:2)

正如我在评论中所说,代码现在完美无缺。

在我的索引视图中,我已将其替换为:

<a data-modal='' href='"/Tache/edit/"+@item.TacheId' data-id="@item.TacheId" id="@item.TacheId " title=" edit">Edit </a> 

对此:

<a data-modal='' href="@Url.Action("Edit", "Tache", new { id = item.TacheId })" data-id="@item.TacheId" id="@item.TacheId " title=" edit">Modifier </a>