Javascript 使用ajax ASP.NET发布文章
控制器Javascript 使用ajax ASP.NET发布文章,javascript,asp.net,asp.net-mvc,asp.net-ajax,Javascript,Asp.net,Asp.net Mvc,Asp.net Ajax,控制器 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Index(Contact contact) { using (LawContext DB = new LawContext()) { if (ModelState.IsValid) { DB.Contact.Add(contact
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Index(Contact contact)
{
using (LawContext DB = new LawContext())
{
if (ModelState.IsValid)
{
DB.Contact.Add(contact);
DB.SaveChanges();
return Json("OK");
}
return View();
}
}
看法
我不明白为什么会这样
通常不需要发出警报?
我怎样才能正确地做到这一点?我需要你的帮助。
我研究过很多例子。
我想我失去了不用问就能做到的希望
我希望工作顺利。尝试将提交按钮更改为: 或者您可以保持原样,在Ajax调用中执行以下操作:
$(document).ready(function () {
$("#btn_contact").click(function (event) {
event.preventDefault();
$.ajax(
{
type: "POST",
url: "Contact/Index",
data: {
Lastname: $("#Lastname").val(),
Mail: $("#Mail").val(),
Phone: $("#Phone").val(),
Message: $("#Message").val()
},
dataType: "json",
async: true,
processData: false,
cache: false,
contentType: "application/json; charsetset=utf8",
success: function (data) {
alert('success');
},
failure: function (data) {
alert('failure');
},
error: function (data) {
alert('error');
}
});
});
});
这是为了防止提交类型按钮的默认行为,该按钮将表单发送到操作url。您现在的做法是使用表单提交按钮调用ContactController上的索引操作,该操作返回视图,这就是为什么空白页面显示ok。如果您想使用ajax调用相同的操作,请尝试使用普通按钮,为其提供id btn\U联系人。代码的其余部分看起来不错。我还没有测试过它,但它应该会弹出一个警报。您可以同时进行ajax调用和正常提交。您需要取消默认提交-$btn\U联系人。单击功能e{e.preventDefault;$.ajax….或添加return false;,作为方法中的最后一行代码。作为旁注,没有必要在if块中包装@Html.ValidationSummary。此外,return视图;没有任何意义,因为您从未对所创建的视图执行任何操作return@StephenMuecke当我没有检查时,我给出的样式似乎是空的,作为一个侧面没有te,只需使用数据:$'form'。序列化并删除contentType:application/json;charsetset=utf8,当您发布ajax文章时,POST方法中的模型甚至不会与当前代码绑定。您还可以删除async:true,这是默认值
$(document).ready(function () {
$("#btn_contact").click(function () {
$.ajax(
{
type: "POST",
url: "Contact/Index",
data: {
Lastname: $("#Lastname").val(),
Mail: $("#Mail").val(),
Phone: $("#Phone").val(),
Message: $("#Message").val()
},
dataType: "json",
async: true,
processData: false,
cache: false,
contentType: "application/json; charsetset=utf8",
success: function (data) {
alert('success');
},
failure: function (data) {
alert('failure');
},
error: function (data) {
alert('error');
}
});
});
});
$(document).ready(function () {
$("#btn_contact").click(function (event) {
event.preventDefault();
$.ajax(
{
type: "POST",
url: "Contact/Index",
data: {
Lastname: $("#Lastname").val(),
Mail: $("#Mail").val(),
Phone: $("#Phone").val(),
Message: $("#Message").val()
},
dataType: "json",
async: true,
processData: false,
cache: false,
contentType: "application/json; charsetset=utf8",
success: function (data) {
alert('success');
},
failure: function (data) {
alert('failure');
},
error: function (data) {
alert('error');
}
});
});
});