我有这样的行动方法:
[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;
});
});
但是任何编辑按钮都不会调用此函数。
答案 0 :(得分:2)
“当用户尝试提交表单时,会将提交事件发送给元素。它只能附加到元素。可以通过单击明确<input type="submit">
,<input type="image">
来提交表单,或<button type="submit">
,或在某些表单元素具有焦点时按Enter键。“
- 来自http://api.jquery.com/submit/
这对您来说意味着您需要按钮才能触发提交事件的提交类型,但我不认为这是您正在考虑的那个。请尝试使用.click()。