#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")'