我有一個簡單的表單,它使用Jquery發佈到Web API2項目中的/ api/account/register。錯誤路由到註冊方法,Web API 2
的形式非常簡單:
<body>
<form id="userData">
<input type="text" id="userName" placeholder="Name"/>
<br />
<input type="password" id="password" placeholder="Password"/>
<br />
<input type="password" id="ConfirmPassword" placeholder="Password" />
<br />
<input type="button" id="register" value="register" />
</form>
<pre id="output"></pre>
<script src="Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
var showResponse = function (object) {
$("#output").text(JSON.stringify(object, null, 4));
};
var register = function() {
var url = "/api/account/register";
var data = $("#userData").serialize();
$.post(url, data).always(showResponse);
return false;
};
$("#register").click(register);
</script>
</body>
然而,當我點擊註冊按鈕,我被呈現:
{
"readyState": 4,
"responseText": "{\"Message\":\"An error has occurred.\",\"ExceptionMessage\":\"Object reference not set to an instance of an object.\",\"ExceptionType\":\"System.NullReferenceException\",\"StackTrace\":\" at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()\\r\\n--- End of stack trace from previous location where exception was thrown ---\\r\\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\\r\\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\\r\\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\\r\\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()\"}",
"responseJSON": {
"Message": "An error has occurred.",
"ExceptionMessage": "Object reference not set to an instance of an object.",
"ExceptionType": "System.NullReferenceException",
"StackTrace": " at System.Web.Http.ApiController.<InvokeActionWithExceptionFilters>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__0.MoveNext()"
},
"status": 500,
"statusText": "Internal Server Error"
}
你能告訴我們你的控制器代碼嗎? –