2015-06-19 2 views
4

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

У меня есть этот скрипт, который должен вставить частичный вид внутри страницы на основе выбора выпадающего списка.

$(function() { 
    $('#ddTipologiaFattura').change(function() { 
     var selectedID = $(this).val(); 
     $.ajax({ 
      url: '/Admin/Fatturazione/GetPartial/' + selectedID, 
      contentType: 'application/html; charset=utf-8', 
      type: 'GET', 
      dataType: 'html' 
      }) 
      .success(function (result) { 
       $('#partialPlaceHolder').html(result); 
      }) 
      .error(function (xhr, status, error) { 
       alert(status + '\n' + error) 
      }); 
     }); 
    }); 

Это мой контроллер ~/Области/Администратор/Контроллеры/FatturazioneController.cs

[RouteArea("Admin")] 
    [Route("Fatturazione/{action}")] 
    public class FatturazioneController : Controller 
    { 
     private MyEntity db = new MyEntity(); 

     public ActionResult GetPartial(int partialViewId) 
     { 
      if (partialViewId == 0) 
      { 
       var fatturaAziendaVM = new FatturaPerAziendaViewModel(); 
       ViewBag.Intestatario = new SelectList(db.Azienda, "AziendaNome", "AziendaNome"); 
       return PartialView("~/Areas/Admin/Views/Fatturazione/_ListaAziende.cshtml", fatturaAziendaVM); 
      } 
      var fatturaVM = new FatturaViewModel(); 
      return PartialView("~/Areas/Admin/Views/Fatturazione/_Intestatario.cshtml", fatturaVM); 
     } 

Я постоянно получаю не найден ошибку сценария. Что я делаю неправильно?

+0

У вас есть доступ к прямому из вашего браузера URL-адреса, заданного для запроса AJAX? – lucasnadalutti

+0

Нет, я могу получить доступ только к другим ActionResults от контроллера, которые возвращают View, а не PartialView. –

+0

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

ответ

2

Ваш маршрут учитывает только действие, а не идентификатор, поэтому он не работает. Вы должны либо обновить маршрут за действие до учетной записи для Id, либо добавить идентификатор в качестве параметра строки запроса.

$.ajax({ 
     url: '/Admin/Fatturazione/GetPartial?partialViewId=' + selectedID, 
Смежные вопросы