![](/img/trans.png)
[英]How to integrate ASP.NET Identity with ASP.NET Web API in Ember.js application
[英]How to get detailed errors from ModelState asp.net web api identity
我有一個帶有ASP.NET Web API 2身份的注冊表。
這是我的注冊功能:
// POST api/Account/Register
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var user = new ApplicationUser() { UserName = model.Email, Email = model.Email };
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
try
{
...send email
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
return Ok();
}
如果ModelState
無效,則返回以下內容:
如何獲得此詳細錯誤? 我正在尋找一種從ModelState動態獲取所有詳細錯誤的方法。 我不確定在收到響應時是否應該在Web api或javascript中執行此操作。
我最終在我的AccountController上編寫了以下函數。 它遍歷ModelState
上的錯誤,將它們添加到列表,然后遍歷列表,並將它們添加到ModelState
。
public void SetCustomError()
{
var errors = new List<string>();
foreach (var state in ModelState)
{
foreach (var error in state.Value.Errors)
{
errors.Add(error.ErrorMessage);
}
}
foreach (var error in errors)
{
ModelState.AddModelError("CustomError", error);
}
}
然后在我的JavaScript上,我像這樣處理它:
function showError(jqXHR) {
if (jqXHR) {
jsonValue = jQuery.parseJSON(jqXHR.responseText);
if (!jsonValue.modelState["customError"] == undefined) {
$("#error").text(jsonValue.modelState["customError"][0]);
}
else {
$("#error").text(jsonValue.modelState[""][0]);
}
$("#modalError").dialog();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.