【发布时间】:2015-10-29 16:14:06
【问题描述】:
我是 Angularjs 的初学者,我有 post 方法可以很好地注册它的作品,并且找不到登录 retutn 404 的方法。
这是我的 Web Api 控制器,具有 Post 和 Put 方法
// POST api/StudentsAPI
//[EnableCors(origins: "*", headers: "*", methods: "*")]
// [ActionName("register")]
// [HttpPost]
public HttpResponseMessage PostRegister(Users Student)
{
if (ModelState.IsValid)
{
Random rnd = new Random();
int card = rnd.Next(52);
Student.user_id = card;
// _usertManager.AddUser(Student);
var activateToken = WebSecurity.CreateUserAndAccount(Student.user_mail, Student.password, Student);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, Student);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { id = Student.user_id }));
// _mailManager.Sendmail("salah.rzzaz90@gmail.com", "salahsayedrzzaz@gmail.com","dd","dd");
return response;
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
////[EnableCors(origins: "*", headers: "*", methods: "*")]
//[ActionName("Login")]
[HttpPut]
public HttpResponseMessage PutLogin(string userMaill, string passwordd)
{
if (ModelState.IsValid)
{
_usertManager.Login(userMaill, passwordd);
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, userMaill);
response.Headers.Location = new Uri(Url.Link("DefaultApi", new { userMaill = userMaill }));
return response;
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
编辑:在出现此错误之前,不允许使用 put 方法的其他错误我通过在 web.config 中添加此代码来解决此问题
<system.webServer>
<modules>
<remove name="WebDAVModule" />
</modules>
<handlers>
<remove name="WebDAV" />
</handlers>
<security>
<requestFiltering>
<verbs allowUnlisted="false">
<add verb="GET" allowed="true" />
<add verb="POST" allowed="true" />
<add verb="DELETE" allowed="true" />
<add verb="PUT" allowed="true" />
</verbs>
</requestFiltering>
</security>
Controller.js
$scope.login = function () {
var LoginDto = {
user_maill: $scope.user_maill,
passwordd: $scope.passwordd,
};
var promisePost = CRUD_OperService.put(LoginDto);
promisePost.then(function (pl) {
GetAllRecords();
$scope.Message = "done";
ClearModels();
}, function (err) {
console.log("Err" + err);
});
};
});
service.js
this.put = function (LoginDto) {
var request = $http({
method: "put",
url: "/api/HomeApi",
data: LoginDto
});
return request;
}
【问题讨论】:
-
向我们显示您调用的链接,当您获得 404 - 未找到状态时
-
我在 Visual Studio 中测试未发布的网站
标签: c# angularjs model-view-controller asp.net-web-api