2012-06-22 3 views
0

В моем MVC3 приложение, я использую $ .ajax для вызова метода типа JsonResult, чтобы получить данные, которые будут отображаться:Получение ошибки 404 при вызове действия в MVC3 с JQuery

function GetData(e) { 
    var ordersId = e.row.cells[0].innerHTML; //this is fine 
    $.ajax({ 
     type: "POST", 
     url: "/Documents/GetDocumentData", 
     contentType: "application/json; charset=utf-8", 
     data: "{'id': '"+ordersId +"'}", 
     dataType: "json", 
     success: function (result) { 
     //load window 
     }, 
     error: function (result) { 
      if (!result.success) 
     //show error 
     } 
    }); 

Это мое действие:

[HttpPost] 
     public JsonResult GetDocumentData(string id) 
    { 
      //my code 
      return Json(new { success = true}); 

     } 

Когда я отлаживаю свою машину разработки, она отлично работает. Я развернул его на своем тестовом веб-сервере, и я получил сообщение «404 страница не найден dev/testwebsite/Documents/GetDocumentData». Я должен получить это при отладке, если что-то не так, но я не уверен. Почему я получаю эту ошибку? Спасибо

+0

Что URL от этого вы имеете доступ к 'Action' – Jorge

+0

Я не понимаю ваш вопрос .... – BoundForGlory

+0

Почему url, который отображается в представлении, когда вы тестируете приложение? – Jorge

ответ

0

Ваш URL-адрес в javascript неверен, если этот dev/testwebsite/Documents/GetDocumentData является URL-адресом на сервере.

Вы должны использовать @ Url.Action(), чтобы автоматически формировать эти URL-адреса на странице cshtml.

Пример:

@Url.Action("actionName","controllerName" ) 

Таким образом, для вашего конкретного случая, это было бы:

@Url.Action("GetDocumentData", "Documents") 

В JavaScript, это будет выглядеть следующим образом:

function GetData(e) { 
    var ordersId = e.row.cells[0].innerHTML; //this is fine 
    $.ajax({ 
     type: "POST", 
     url: '@Url.Action("GetDocumentData","Documents")', 
     contentType: "application/json; charset=utf-8", 
     data: "{'id': '"+ordersId +"'}", 
     dataType: "json", 
     success: function (result) { 
     //load window 
    }, 
    error: function (result) { 
     if (!result.success) 
     //show error 
    } 
}); 
+0

Вы имеете в виду следующее: url: @ Html.ActionUrl ("/ Documents/GetDocumentData"). В моем звонке $ .ajax? – BoundForGlory

+0

Это не то, что вы разместили ... И URL-адрес в том, что вы опубликовали, не соответствует URL-адресу в javascript. – dodexahedron

+0

Как использовать Html.ActionUrl - мой вопрос? – BoundForGlory

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