[英]MVC4: After server restart, cannot post ajax internal server error 500
[英]MVC4 Action Post Parameters Error 500 Internal Server Error
我有一個帶有后期操作(多個參數)的控制器。 使用javascript ajax發布數據,我收到500 Internal Server Error
。 有什么建議嗎?
路由
config.Routes.MapHttpRoute(
null,
routeTemplate: "api/{controller}/{action}"
);
阿賈克斯
public register(data: any): bool {
var url = this.baseUrl + "Account/Register/";
var xhr: JQueryXHR = $.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
login: ({ Id: 0, "Username": "myUser", "Password": "myPass" }),
company: ({ Id: 0, "Name": "myCompany" })
}),
async: false,
cache: false,
});
return (xhr.status == 200);
}
行動
[HttpPost]
[AllowAnonymous]
[Mvc.ValidateAntiForgeryToken]
public void Register(UserLogin login, Company company)
用戶登錄
public class UserLogin
{
public string Username { get; set; }
public string Password { get; set; }
}
公司
public class Company
{
public string Name { get; set; }
public string Street { get; set; }
...
}
我還沒有看到這樣聲明javascript對象的語法。 也許這可能是問題所在。 嘗試:
data: JSON.stringify({
login: { UserId : 0, Username: "myUser", Password: "myPass" },
company: { CompanyId : 0, Name: "myCompany" }
})
刪除您的(
和)
另一個問題可能是由於ValidateAntiForgeryToken
。 此過濾器是為了防止CSRF,您必須將請求驗證令牌發送到服務器。 嘗試先刪除此過濾器,看看它是否有效。
這樣嘗試
public register(data: any): bool {
var url = this.baseUrl + "Account/Register/";
var xhr: JQueryXHR = $.ajax({
type: "POST",
url: url,
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({
login: ({ UserId : 0, Username: "myUser", Password: "myPass" }),
company: ({ CompanyId : 0, Name: "myCompany" })
}),
async: false,
cache: false,
});
return (xhr.status == 200);
}
用戶登錄
public class UserLogin
{
public int UserId {get; set;}
public string Username { get; set; }
public string Password { get; set; }
}
公司
public class Company
{
public int CompanyId {get; set;}
public string Name { get; set; }
public string Street { get; set; }
...
}
根據此鏈接發布參數,這是不可能的。 您可以在發布時將一個對象傳遞給動作構造函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.