索引未按预期显示在 url 中,因此 AJAX 调用转到错误的位置 - MVC 路由 AJAX



我有一个应用程序,如果我点击一个链接(在/ImagesList/Index.cshtml),它会把我发送到另一个目录(/ImagesAnalysis/…)的视图。通过一个控制器函数加载一些数据。

我的问题是,我希望有url/ImageAnalysis/Index但我实际上只有/ImageAnalysis

ImagesList控制器
    public ActionResult View(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        return RedirectToAction("Open", "ImagesAnalysis", new { id = id });
    }

ImagesAnalysis控制器
    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

使用完整的URL路径。=>简单的答案。

通常发生这种情况时,是配置问题。

使用Url帮助器生成路径

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

相关内容

  • 没有找到相关文章

最新更新