2013-05-29 4 views
0

Почему моя функция контроллера не называется? Я всегда получаю 500error (в скрипаче). Я не вижу ошибок в Visual Studio или сайте ошибки.ASP.NET MVC Controller - 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. Действует ли ваше действие, когда вы используете имя контроллера как часть URL-адреса? – Maess

+0

Добавить обработчик ошибок для вашего вызова ajax и проверить ответ –

+0

Не уверен, что это ваша проблема, но в качестве маршрута боковой заметки с атрибутом маршрута не следует начинать с косой черты. URL-адрес ajax все равно должен начинаться с одного. –

ответ

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

Смежные вопросы