我在剃刀视图中有一个表单,其定义如下:
using (Html.BeginForm("Submit", "CT0, FormMethod.Post, new { id = "rForm" }))
我在CT0中有一个名为submit的方法,它接受一个模型:
public async System.Threading.Tasks.Task<ActionResult> Submit(CTModel ctmodel)
当我提交这样的表单时,它会使用正确的模型命中函数,但我无法获得JSON回复:
var form = document.getElementById('rForm');
form.submit();
我尝试过ajax,但它没有提交给控制器,或者错误,或者成功。它似乎什么都没做:
$("#rForm").submit(function (e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var form = $(this);
var url = form.attr('action');
$.ajax({
type: "POST",
url: url,
data: form.serialize(), // serializes the form's elements.
success: function (data) {
alert(data); // show response from the php script.
}
});
});
我尝试了jquery,但它从未命中控制器中的submit函数或出错。它似乎什么都没做:
$(function () {
$('form[name=rForm]').submit(function () {
$.post($(this).attr('action'), $(this).serialize(), function (json) {
alert(json);
}, 'json');
return false;
});
});
那么,你知道我如何提交表格和模型并得到回复吗?提前谢谢。
这很有效:
var form = $("#rForm");
$.ajax({
type: 'POST',
url: "/CT0/Submit",
data: form.serialize(),
success: function (data) {
showModal("Error Getting Address: " + data.message);
},
error: function (xhr) {
showModal("Error Getting Address: " + xhr.status + " " + xhr.statusText);
}
})