2013-05-29 86 views
0

爲什麼不調用我的控制器函數? 我總是得到500error(在小提琴手)。我在Visual Studio或錯誤站點中沒有出現錯誤。ASP.NET MVC控制器 - 500Error

控制器:

[POST("/test1")] // attributerouting (works with GET methods) 
public ActionResult test1(TreeViewItemModel aItem) 
{ 
    ... 
} 

客戶:

var tree = $("#demo2").jstree("get_json"); 
var c = JSON.stringify(tree); 
$.ajax({ 
     type: "POST", 
     url: "/test1", 
     data: tree, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (response) { 
      alert(response); 
     } 
    }); 
+0

你正在做的一個帖子,而不是一個GET。我認爲屬性路由只適用於get。當您使用控制器名稱作爲URL的一部分時,您的操作會觸發嗎? – Maess

+0

爲你的ajax調用添加一個錯誤處理程序,並檢查那裏的響應 –

+0

不確定這是否是你的問題,但作爲旁註,路由屬性的路由不應該以正斜槓開始。然而,ajax url仍然應該以一個開頭。 –

回答

0

的問題是數據格式: 解決方案:

public ActionResult test1(IEnumerable<TreeViewItemModel> aItem) 
{ 
} 

客戶:

var tree = $("#demo2").jstree("get_json"); 
var c = JSON.stringify(tree); 
$.ajax({ 
    type: "POST", 
    url: "/test1", 
    data: c, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function (response) { 
     alert(response); 
    } 
}); 
1

有些時候500 Internal Server Error發生,因爲在它的搜索語法錯誤就像{}不匹配或等你檢查的test1.cshtml語法控制器?

+0

我沒有查看。我想發佈數據到服務器 – daniel

+0

您是否嘗試使用Firebug檢查發佈數據? – Mojtaba