如何在视图和编辑视图之间切换

时间:2013-03-31 00:27:15

标签: asp.net-mvc asp.net-mvc-3 jquery

我有这样的行动方法:

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

此视图上有一个简单的表单和部分视图列表:

<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;
            });
        });

但是任何编辑按钮都不会调用此函数。

1 个答案:

答案 0 :(得分:2)

“当用户尝试提交表单时,会将提交事件发送给元素。它只能附加到元素。可以通过单击明确<input type="submit"><input type="image">来提交表单,或<button type="submit">,或在某些表单元素具有焦点时按Enter键。“

- 来自http://api.jquery.com/submit/

这对您来说意味着您需要按钮才能触发提交事件的提交类型,但我不认为这是您正在考虑的那个。请尝试使用.click()。