0

私はこのようなアクションメソッドを持っています:

[ChildActionOnly]
        public ActionResult NewUserLanguage()
        {
            ...
            return View(model);
        }

このビューには、1 つの単純なフォームと部分ビューのリストがあります。

<ul id="userLanguagesListBox">
                        @foreach (var l in Model.UserLanguages)
                        {                            
                            <li>
                                @{Html.RenderPartial("UserLanguageBox", l);}
                            </li>                            
                        }
...

この部分的なビューは次のようになります。

...
@using (Html.BeginForm("EditUserLanguage", "UserLanguage", FormMethod.Post, new { id = "editUserLanagegeForm" }))
    {
        <ul>

            <li><h3>@Model.Language.Name</h3></li>
            <li>@Model.LanguageLevel.Name</li>    
            <li>
                @Html.HiddenFor(x=>x.UserLanguageId)
                <button class="editButton">Edit</button>
            </li>        
        </ul>
    }

私がやろうとしているのは、ユーザーがパーシャルの編集ボタンをクリックしたときに、別のビューに切り替えたいということEditUserLanguageです。
私はこのようなことを試しました:

$(function () {
            $('#editUserLanagegeForm').submit(function (e) {
                alert('ss');
                $.ajax({
                    url: this.action,
                    type: this.method,
                    data: $(this).serialize(),
                    success: function (result) {
                        $("#" + e.target).closest("div").append(result);

                    }
                });

                return false;
            });
        });

ただし、この関数は編集ボタンから呼び出されることはありません。

4

1 に答える 1

2

「送信イベントは、ユーザーがフォームを送信しようとしたときに要素に送信されます。要素にのみ添付できます。フォームは、明示的な<input type="submit"><input type="image">、またはをクリックするか<button type="submit">、特定のフォーム要素にフォーカスがあるときに Enter キーを押すことで送信できます。 ."

・http://api.jquery.com/submit/より

これが意味することは、送信イベントをトリガーするためにボタンに送信のタイプが必要であるということですが、それはあなたが考えているものではないと思います。代わりに .click() を使用してみてください。

于 2013-03-31T00:42:37.030 に答える