我环顾四周,但没有找到任何可以真正成功调用 MVC Controller 的内容(Angular 帖子)。我知道有很多 Angular/.Net 开发人员。我可以获得帮助吗?
让我们的答案保持简单!!!
如果我在 Controller 上设置换行符,我可以看到这段代码实际上并未命中 Controller 。
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# Controller
[AcceptVerbs("OPTIONS")]
public ActionResult Give(int id)
{
var response = "some response" + id.ToString();
return Json(new JavaScriptSerializer().Serialize(response));
}
最佳答案
king Puppy,我看到一些响应表明 Controller 参数应该是与正在发送的对象相匹配的对象,但是,它似乎比这更宽容一些。考虑以下示例(我稍微更新了您的函数):
Javascript:
$scope.postIt = function() {
var data = {
id = 4
};
$http
.post('Home/Give', data)
.success(function(data, status, headers, config) {
successFn();
})
.errors(function(data, status, headers, config) {
errorFn();
});
};
function successFn() {
alert("success");
};
function errorFn() {
alert("error");
};
MVC:
public ActionResult Give(int id)
{
var response = "some response" + id.ToString();
return Json(new JavaScriptSerializer().Serialize(response));
}
如果设置断点,你会看到传入的id是4。
如果您需要传入一个对象(因此不仅仅是一个 id),您可以在 Controller 端创建一个匹配的类或结构,或者拥有多个参数(前提是它们是简单值类型) 即:
public JsonResult Give (int id, int reasonId)
{
...
}
无论如何,我意识到这篇文章已经过时了,但也许它会对您或其他人有所帮助。
关于c# - 如何将 Angular POST 发送到 C# Asp.Net MVC Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25456250/