TypeError:无法分配给只读属性'方法' VAR

时间:2014-11-06 20:26:57

标签: c# asp.net-mvc angularjs computer-science

我正在使用AngularJS发布到我的WebAPI(C#/ .Net)。它工作正常,但我从UserProfile对象中删除了我的密码字段(因为我使用的是实体框架,并且不希望在该表中包含该列),现在我将密码作为字符串从界面传递通过发布到UsersController。

问题: UsersController永远不会收到帖子,因为浏览器会抛出错误:

TypeError:无法分配给只读属性'方法'密码

这是我的AngularJS代码,用于向UsersController发送帖子:

var _addUser = function(newUser, password) {

    var deferred = $q.defer();
    alert('_addUser password is ' + password);
    **//********** password gets here just fine**
    $http.post("/api/v1/users", newUser, password) **// <-- this is where it breaks**
        .then(function(result) {
            //success
            var newlyCreatedUser;
             angular.copy(result.data, newlyCreatedUser);
            _users.splice(0, 0, newlyCreatedUser); 
            deferred.resolve(newlyCreatedUser);
        },
        function () {
            //error
            deferred.reject();
        });

    return deferred.promise();
}

这是我的UsersController方法,应该将内容发送到:

public HttpResponseMessage Post([FromBody]UserProfile newUser, string password)
    {
        if (newUser.Created == default(DateTime))
        {
            newUser.Created = DateTime.UtcNow;
        }

        if (_repo.AddUser(newUser, password) 
            && _repo.Save())
        {
            return Request.CreateResponse(HttpStatusCode.Created
                , newUser);
        }

        else
        return Request.CreateResponse(HttpStatusCode.BadRequest);
    }

1 个答案:

答案 0 :(得分:0)

我决定不在单独的字符串中收集密码,只是告诉Entity Framework忽略带有[NotMapped]装饰的Password类。