我用的是net。我今天第一次尝试从ajax调用调用一个action方法:
我的Ajax调用(来自一个普通的HTML页面)
$("#contactMap").click(function (e) {
e.preventDefault();
var url = "/MapObjects/mapContact";
//I've tried MapObjectsController & '@Url.Action("mapContact", 'MapObjects")'; But to no avail
$.ajax({
url: url,
type: 'POST',
contentType: 'application/json; charset=utf-8',
cache: false,
success: function (result) {
alert("success");
}
});
});
在我的控制器中:
namespace myName.Controllers
{
public class MapObjectsController : Controller
{
public IActionResult Index()
{
return View();
}
[HttpPost]
public JsonResult mapContact()
{
Account account = new Account();
return Json(account);
}
}
}
account只是一个普通的模型(在这种情况下显然是空的)。我收到的只是控制台的404错误。
如上所述,这是我第一次使用。net Core(这是我在"正常"MVC项目中多次编写的代码),所以有可能我错过了一些非常明显的东西。
谢谢,C
首先,尝试在Ajax调用中显式调用@Url.Action()
:
$("#contactMap").click(function (e) {
e.preventDefault();
$.ajax({
url: '@Url.Action("mapContact", "MapObjects")',
type: 'POST',
contentType: 'application/json; charset=utf-8',
cache: false,
success: function (result) {
alert("success");
}
});
});
第二,检查你的路由规则。