很容易将表单提交到控制器中的动作方法,该控制器具有强类型文本框,例如,使用提交按钮,但是如果我想通过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>
}
答案 0 :(得分:1)
您可以执行以下帖子:
$(document).ready(function(){
$('#btnAddGenre').click(function () {
$.post(
$('#AddTopTenFavForm').attr('action'),
$('#AddTopTenFavForm').serialize,
function (data) {
window.location = @Url.Action("Index");
},
'html' // returned data type
);
});
});
我使用html数据类型,因此您可以返回任何内容,并使用window.location
在@Url.Action
上进行重定向以提供位置。
请将其标记为已接受的答案
答案 1 :(得分:0)
是的,您可以使用jquery发布强类型textboxex的数据。 首先,你必须这样做 使用下面的代码获取jquery中所有textboxex的值。
var xx= $("#xx").val();
这将从你的mvc文本框中给出xx中的val。 然后通过使用jquery ajax调用,您可以调用action方法。 代码如下。
$.get("/XXXX/YY/1", { xxName: xx }, function (data) {
var status = data;
alert(status);
if (status) {
return true;
}
else {
alert("The book with this name is already present. TRY DIFFERENT NAME!")
return false;
}
});
这里xxxx是控制器amd yy是动作方法名称。下一个参数是您要作为参数发送的所有文本框的值。 这将执行ajax调用并返回值。
请告诉我,如果您发现任何问题,我将提供整个代码。