很容易將表單提交給控制器中的強制類型化文本框的操作方法,例如使用提交按鈕,但是如果我想發送完全相同的形式與強類型的文本框通過jquery也許是$ .ajax調用後點擊其他東西。在asp.net mvc中通過jquery傳遞強類型表單模型數據
這樣的代碼:
@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>
}
爲什麼你要在一個匿名函數內觸發點擊事件的窗體? – Joakim
在更詳細地回顧您的代碼之後,我注意到您剛忘記關閉click函數,關於能夠執行ajax調用,asp.net mvc有一個幫助器Ajax.BeginForm,這樣您就可以使用內置的支持如果你這麼請。 – Joakim