Ajax从不启动';成功';使用ASP.NET
本文关键字:使用 ASP NET 成功 Ajax 启动 | 更新日期: 2023-09-27 18:26:25
我正在尝试做一个简单的Ajax调用来从HTML页面注册用户,MVC 4中的函数被调用并运行良好,但它返回的内容从未在Ajax调用中触发"success"函数。
如果我使用浏览器手动访问Register()函数,它运行良好,并返回我想要的消息,但不能通过Ajax
function register() {
var userModel = {
phoneNumber: "1236663",
displayname: "yasuuu",
}
$.ajax({
type: "POST",
url: "http://localhost:13234/home/register",
data: userModel,
success: function (response) {
$('#deleteThisDivButNotItsContent').html(response)
}
})
}
public ActionResult Register(string PhoneNumber, string DisplayName)
{
// Some working code here ...
ViewBag.Message = "Some Message"; // just trying to display simple text
return View();
/* tried all of the lines below too */
//return this.Json("1234");
//return Json("{ result : true }");
//return PartialView("ShowResultPartial", JsonRequestBehavior.AllowGet);
//CommentSection commentSection = new CommentSection();
//return PartialView("CommentSection");
//return PartialView("CommentSection", commentSection);
//return Json(new { success = true, response = "Saved ok" });
}
我使用的是JQuery 2.0.3
让它返回JsonResult
而不是ActionResult
。AJAX究竟如何解释ActionResult视图?
此外,您向Register()方法发送了一个对象,但收到了两个字符串变量。
这里有一个例子:
function register() {
var userModel = {
phoneNumber: "1236663",
displayName: "yasuuu",
}
$.ajax({
type: "POST",
url: "http://localhost:13234/Home/Register",
data: userModel,
success: function (response) {
$('#deleteThisDivButNotItsContent').html(response.message)
}
});
}
publi class UserModel
{
public string phoneNumber { get; set; }
public string displayName { get; set; }
}
public JsonResult Register(UserModel userModel)
{
// Some working code here ...
return Json(new { message = "Some message here" }, JsonRequestBehavior.AllowGet);
}
为什么不试试这个?
function register() {
$.post("/home/Register",
{phoneNumber: "1236663", displayname: "yasuuu"},
function(data,status,xhr){
$('#deleteThisDivButNotItsContent').html(data.response);
});
}
在控制器中
return Json(new { success = true, response = "Saved ok" });
当您在浏览器中键入http://localhost:1234/register
时,它会对该URL发出GET
请求。在您的javascript中,jquery正在发出一个POST
请求。ajax请求收到404错误,因为路由未配置为响应POST
请求。