Hello Stack Overflow社区, (这是我的第一篇文章)。
我有以下代码:
public class HomeController
{
public ActionResult Index()
{
return View()
}
[HttpPost]
public ActionResult CalculateProblem(List<Location> Locations)
{
///Dummy code
}
}
<script>
$.ajax({
url: '@Html.Action("CalculateProblem","Home")'
/* Further Dummy Stuff */
});
</script>
在运行时,加载_Home.cshtml时,遇到类似于以下内容的System.Web.HttpException:
“未找到公共操作方法”CalculateProblem“ 控制器。 .HomeController“
下划线表示命名空间。
如果删除[HttpPost]
属性,一切正常。但这不是我想要的,因为我正在向IIS
发送数据。
有人可以告诉我,我缺少什么吗?
最好的问候,安东。
答案 0 :(得分:1)
@Html.Action("CalculateProblem","Home")
会尝试在 HomeController 类中找到名为 CalculateProblem 的操作,其中包含 HttpGet 属性有 HttpPost ,另一个是Html.Action()
将调用该操作,并将html返回视图进行渲染。
你需要的是Url.Action()
这里使用控制器和动作名称生成url字符串,所以你要设置ajax调用的url
:
url: '@Url.Action("CalculateProblem","Home")'
答案 1 :(得分:0)
你能分享你在AJAX请求中设置的其他参数吗? 如果您将定义Type:POST,它将查找HTTPPOST并且您的方法应该有效。
由于