2014-11-22 31 views
0

我刚从WebApi2开始我的旅程。我已经定制了注册用户的我的apiController。现在我想在我的页面上处理它。 我创建了一个控制器并为它创建了一个视图。 用户注册工作正确。我想知道,我该如何处理任何注册错误(例如无效模式,其中错误字段将被标记为红色,错误消息将显示在旁边),并最终在注册成功后自动将用户重定向到秘密页面。 我有下面的代码至今:Web api 2 - 注册,重定向和处理错误

var register = function() { 
     $.ajax({ 
      url: "/api/Account/Register", 
      type: "POST", 
      data: $("#registrationForm").serialize(), 
      success: function(data) { 
       //how to redirect to secret page 
      }, 
      error: function (message) { 
       //how to handle error messages with dataannotations 
      } 
     }); 
     return false; 
    }; 

    $("#register").click(register); 

我想我应该只是一些解析JSON,但我问的最佳实践如何做到这一点。

+0

jQuery的AJAX方法的'error'函数用于请求错误,即无法到达端点。在对'/ api/Account/Register'进行调用之前,您应该先进行表单验证。如果客户端验证通过,但由于某种原因,端点无法验证数据,则必须在响应中指定该信息,您将返回“success:function(data)”。 – 2014-11-22 19:53:45

+0

你可能不正确,因为API端点返回IHttpActionResult – 2014-11-22 20:03:15

回答

0
success: function(data) { 
    //here you can handle response from server. If registration fails you should return 
    //validation errors, if not you can return session_token and redirect to some other page (for example) 
}, 
error: function (message) { 
    //to handle this - you should throw httpexception in your controller method with 500 error code 
    //and with some short error description. 
} 


//web api exception throwing example: 
throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, 
"this item does not exist");