【发布时间】:2011-11-03 23:18:53
【问题描述】:
很容易将表单提交到具有强类型文本框的控制器中的操作方法,例如,使用提交按钮,但如果我想通过 jquery 发送与强类型文本框完全相同的表单,也许 $单击其他内容后调用 .ajax。
这样的代码:
@Html.TextBoxFor(m => m.topTenFav.YoutubeLink,new { id="youTubeLinkTxt"})
为我们完成所有工作,在控制器中映射对象的属性非常简单
[HttpPost]
public ActionResult AddTopTenFav(HomeViewModel topTen)
{
topTen.topTenFav.Date = DateTime.Now;
topTen.topTenFav.UserName = User.Identity.Name;
repository.AddTopTen(topTen);
repository.Save();
return RedirectToAction("Index");
}
如何将此表单发送到控制器,将表单中的文本框映射到单击事件上的对象属性,例如
$("#btnAddGenre").click(function () {}
@using (Html.BeginForm(
"AddTopTenFav", "Home", FormMethod.Post, new { id = "AddTopTenFavForm" }))
{
<span id="youTubeLinkSpan">Youtube Link</span>
<div>
@Html.TextBoxFor(m => m.topTenFav.YoutubeLink,new { id="youTubeLinkTxt"})
</div>
<span id="youTubeNameSpan">Song Title</span>
<div>
@Html.TextBoxFor(m => m.topTenFav.Title,new { id="youTubeNameTxt"})
</div>
<button type="submit" name="btnSubmit" value="">submit</button>
}
【问题讨论】:
-
为什么要在一个匿名函数中放置一个表单来触发点击事件?
-
在更详细地查看了您的代码后,我注意到您刚刚忘记关闭点击功能,关于能够进行 ajax 调用,asp.net mvc 有一个帮助程序 Ajax.BeginForm,那样如果你愿意,你可以使用内置的支持。
标签: asp.net-mvc-3 jquery