这是我的看法
<div>
@using ( Html.BeginForm("jQueryPost", "Home",null, FormMethod.Post, new { id="FormPost" }))
{
@Html.TextBoxFor(x=> x.Name)<br />
@Html.TextBoxFor(x => x.LastName)<br />
@Html.TextBoxFor(x => x.Age)
<input type=submit value="submit" />
}
</div>
<script>
$(document).ready(function () {
$('#FormPost').submit(function (e) {
//This line will prevent the form from submitting
e.preventDefault();
alert('ajax post here');
$.ajax({
type: 'POST',
url: $('#FormPost').attr('action'),
data: $('#FormPost').serialize(),
accept: 'application/json',
error: function (xhr, status, error) {
alert('error: ' + xhr.statusText);
},
success: function (response) {
alert('resp: ' + response.data);
}
});
});
});
</script>
这是表单发布到的 Home 控制器的方法:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult jQueryPost(IndexVM vm)
{
IndexVM _vm = vm;
return Json("name posted was: " + _vm.Name);
}
当我提交表单时,我在警报框中得到一个“resp:undefined”。如何将文本“发布的名称是:....”返回到成功发布的视图?
当我将此行添加到操作中时也有例外
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult jQueryPost(IndexVM vm)
{
IndexVM _vm = vm;
throw new Exception("custom error string from action");
return Json("name posted was: " + _vm.Name);
}
我收到消息“错误:内部服务器错误”。我想在错误中返回消息的文本,如下所示:'error: custom error string from action' 这样做的方法是什么?
谢谢