【问题标题】:Model passed to Web Api 2 method is null - AngualrJs传递给 Web Api 2 方法的模型为空 - AngularJs
【发布时间】:2016-04-14 03:56:53
【问题描述】:

我在我的 Web Api 2 控制器中调用一个方法,传入一个名为 login 的模型,该模型由 EmailAddress 和 Password 组成。然而它命中了方法,但传入的模型始终为空......

来自 AngularJs 函数的调用:

  var login = { "EmailAddress": emailAddress, "Password": password };

    $http.post("/api/Login/", { headers: { 'RequestVerificationToken': $scope.antiForgeryToken } }, login).success(function () {

        alert('succes');

    }).error(function () {

        alert('Unable to login at present, please try again later');

    });

我的方法:

    [ValidateAntiForgeryToken]
    public void Post([FromBody]Login login)
    {
        var t = login.EmailAddress;
    }    

我认为这与我构建实际 Angular $http.post 方法的方式有关,但我再次不确定,是否有人建议它可能会出错?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    你可以使用 ajax 和 Razor 吗?

        var login = { "EmailAddress": emailAddress, "Password": password };
        $.ajax({
                    url: "@Url.Action("api/login", "Controller", login)",
                    type: "GET",
                    data: {},
                    success: fCheckBoxes
                });
    

    【讨论】:

      【解决方案2】:

      为什么不能通过配置你的 app.js 将令牌添加到每个请求中

      // Set header for every request
      app.factory('httpRequestInterceptor',  function ($localStorage) {
          return {
              request: function (config) {                
                  if ($localStorage.token != null)
                      config.headers['myAppToken'] = $localStorage.token;
      
                  return config;
              }
          };
      });
      
      app.config(function ($httpProvider) {
          $httpProvider.interceptors.push('httpRequestInterceptor');
      });
      

      【讨论】:

        猜你喜欢
        • 2015-09-22
        • 2015-02-22
        • 1970-01-01
        • 2019-08-05
        • 2016-05-05
        • 2018-08-22
        • 2016-10-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多