0

サイト内のすべてのフォームで jquery.dirtyforms を構成しています。フォームが汚れていて、たとえばページを閉じようとしても問題なく動作します。しかし、目立たない ajax 呼び出しではまったく機能しません。(Ajax.ActionLink)、呼び出しは通常どおり進行します。

何か案は?

コード:

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Create</title>

    <script src="~/Scripts/jquery-2.2.1.js"></script>
    <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
    <script src="~/Scripts/jquery.dirtyforms.js"></script>

    <script type="text/javascript">
      $(document).ready(function(){
          $('form').dirtyForms();
      })
    </script>
</head>
<body>
    @using (Html.BeginForm()) 
    {
        @Html.AntiForgeryToken()
        <div id="update">
            <div class="form-horizontal">                
                @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                <div class="form-group">
                    @Html.LabelFor(model => model.title, htmlAttributes: new { @class = "control-label col-md-2" })
                    <div class="col-md-10">
                        @Html.EditorFor(model => model.title, new { htmlAttributes = new { @class = "form-control" } })
                        @Html.ValidationMessageFor(model => model.title, "", new { @class = "text-danger" })
                    </div>
                </div>

                <div class="form-group">
                    <div class="col-md-offset-2 col-md-10">
                        <input type="submit" value="Create" class="btn btn-default" />
                    </div>
                </div>
            </div>
        </div>
    }

    <div>
        @Html.ActionLink("Back to List", "Index")
        @Ajax.ActionLink("Back to List", "Index", new AjaxOptions {UpdateTargetId = "update"})
    </div>
</body>
</html>

フォームがダーティな場合、Html.ActionLink は Stay/Leave ポップアップをトリガーしますが、Ajax.ActionLink は続行して目的の div に Index View をロードします。私が達成しようとしているのは、Ajax.ActionLink をクリックしたときにも、dirtyforms ポップアップをトリガーすることです。

4

0 に答える 0