Индекс не отображается в URL, как ожидалось, поэтому вызовы AJAX отправляются в другое местоположение — MVC Routing AJAX

#javascript #jquery #ajax #asp.net-mvc #asp.net-mvc-routing

#javascript #jquery ( jquery ) #аякс #asp.net-mvc #asp.net-mvc-routing

Вопрос:

У меня есть приложение, в котором, если я нажму на ссылку (в /ImagesList/Index.cshtml), оно отправит меня в представление в другом каталоге (/ImagesAnalysis/…). Через функцию контроллера, которая загружает некоторые данные.

Проблема, с которой я столкнулся, заключается в том, что я ожидал бы иметь url /ImageAnalysis/Index, но на самом деле у меня есть только /ImageAnalysis

Контроллер списка изображений

     public ActionResult View(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        return RedirectToAction("Open", "ImagesAnalysis", new { id = id });
    }
 

Контроллер анализа изображений

     public ActionResult Open(int id)
    {
        //Load up items from DB

        return RedirectToAction("Index");
    }

    public ActionResult Index()
    {

        if (Session["img"] == null)
        {
            Session["img"] = new ImageModel();
        }

        return View((ImageModel)Session["img"]);
    }
 

Проблема в том, что мой вызов Ajax переходит в неправильное местоположение

/ImagesAnalysis/Index.cshtml

 $("#ImageAccordion").accordion({
    collapsible: true,
    heightStyle: "content",
    activate: function (event, ui) {
        $.ajax({
            type: "POST",
            url: "SetActiveImage",
            datatype: "json",
            traditional: true,
            data: {
                ImageNumber: this.id,
            },
            success: function (Data) {
                drawing.src = "/Images/"   Data;
            }
        });
    }
}); 
 

при использовании firebug вызов ajax переходит к url /SetActiveImage вместо /ImagesAnalysis/SetActiveImage

Ответ №1:

Используйте полный путь URL.=> Простой ответ.

Обычно, когда возникают подобные ситуации, возникает проблема с конфигурацией.

Комментарии:

1. Спасибо за быстрый ответ, это работает. Я должен попытаться устранить проблему с конфигурацией.

Ответ №2:

Используйте помощник Url для создания вашего пути

 url: '@Url.Action("SetActiveImage", "ImagesAnalysis")'