gpt4 book ai didi

c# - 如何使 Angular POST 到 C# Asp.Net MVC Controller ?

转载 作者:行者123 更新时间:2023-11-29 18:13:11 26 4
gpt4 key购买 nike

我环顾四周,但没有发现任何可以真正成功调用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com