[英]Right path to ASP.NET MVC4 Controller's ActionMethod to use for ajax
我有以下MVC4應用程序結構:
從Index.cshtml我試圖對位於我的HomeController.cs中的SomeActionMethod()進行ajax調用
Index.cshtml看起來像:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="Scripts/jquery-2.2.2.min.js"></script>
</head>
<body>
<script>
$.ajax({
url: '@Url.Action("SomeActionMethod", "HomeController")',
type: "POST",
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert(data);
},
error: function () {
alert("fail");
}
});
</script>
</body>
</html>
HomeController.cs看起來像:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace SapRepLanciatoreCAS.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
//trying to invoke from ajax
[HttpPost]
public ActionResult SomeActionMethod()
{
return Json(new { foo = "bar", baz = "Blech" });
}
}
}
路徑或控制器有什么問題?
MVC將controller
名稱的第一部分考慮在內,即忽略Controller
關鍵字(請參閱您的視圖,稱為Home
)。 所以你的網址應該是 - 將HomeController
更改為Home
:
url: '@Url.Action("SomeActionMethod", "Home")',
url:'@Url("Method Name","Controller Name")'
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.