【发布时间】:2014-10-16 20:28:03
【问题描述】:
我环顾四周,但没有找到任何可以实际成功调用 MVC 控制器的东西(Angular 帖子)。我知道那里有很多 Angular/.Net 开发人员。我能得到一些帮助吗?
让我们的答案简单明了!!!
如果我在控制器上设置了换行符,我可以看到这段代码实际上并没有命中控制器。
HTML
<!-- I click this button -->
<input type="button" value="click" onclick="postit()" />
Javascript/Angular 发布
function postit() {
$http({
method: 'POST',
url: 'Home/Give/',
data: { id: 4 }
}).success(successFn).error(errorFn);
}
function successFn() {
alert("success");
}
MVC C# 控制器
[AcceptVerbs("OPTIONS")]
public ActionResult Give(int id)
{
var response = "some response" + id.ToString();
return Json(new JavaScriptSerializer().Serialize(response));
}
【问题讨论】:
-
不太了解 Angular,所以我相信其他人会帮助您。为什么你接受选项动词,而不接受 POST?
-
我发现使用 WebAPI 比使用 MVC 进行 angular 的 AJAX 调用要好得多。
-
"OPTIONS" 在 Angular 帖子的另一个 SO 答案中被推荐。我正在尝试对我有利的赔率:)
-
我也看到了 WebAPI 控制器示例,但如果可能的话,我希望使用标准 MVC 控制器(如果没有其他方法可行,我会采用这种方式)。
-
OPTIONS 动词用于启用 CORS。您还应该输入
[HttpPost]以启用该操作以接收帖子。如果这不起作用,请告诉我们对端点的响应是什么,您可以通过检查 Chrome 开发者工具上的网络选项卡来做到这一点。
标签: c# javascript asp.net-mvc angularjs