c# - 如何将 Angular POST 发送到 C# Asp.Net MVC Controller ?

标签 c# javascript asp.net-mvc angularjs

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

相关文章:

c# - 将默认无参数构造函数添加到结构的解决方法

c# - List<> 无法序列化为 JSON

c# - 如何使用动态 javascript 下拉列表进行 MVC 编辑

c# - 将 OpenID 与 Web 服务一起使用 : Best way to authenticate?

c# - 在可空类型上使用合并空运算符会更改隐式类型

c# - 如果以编程方式创建控件,则 Windows Media Player 视频为黑色

c# - 如何将数据从静态 WebMethods 存储到 ViewState

javascript - 用前导零填充输入

javascript - 在另一个 url 中传递 url

javascript - window.opener 替代品