Jquery asp.net mvc-当应用程序发布到IIS时,控制器操作返回404

Jquery asp.net mvc-当应用程序发布到IIS时,控制器操作返回404,jquery,asp.net,ajax,asp.net-mvc,iis,Jquery,Asp.net,Ajax,Asp.net Mvc,Iis,我有一个在本地调试和运行的应用程序。当我将其发布到IIS时,再也找不到控制器上的操作 它回来了 http://server/home/Table2?ids=122026000&ids=123201000&ids=122627000&ids=121514000&ids=123187000 404(未找到) 我正在使用jqueryajax函数将id传递给操作,然后该操作返回一个局部视图,其中模型是根据id构造的 控制器 public class HomeController : Controller

我有一个在本地调试和运行的应用程序。当我将其发布到IIS时,再也找不到控制器上的操作

它回来了
http://server/home/Table2?ids=122026000&ids=123201000&ids=122627000&ids=121514000&ids=123187000 404(未找到)

我正在使用jqueryajax函数将id传递给操作,然后该操作返回一个局部视图,其中模型是根据id构造的

控制器

public class HomeController : Controller
{
    [HttpGet]
    public ActionResult Table2(string[] ids)
    {

        (......) //query database and build model 

        return PartialView("_Partial", Model);
    }
}
AJAX

var submitAgmtIds = function submitAgmtIds(ids) {

        $.get('Home/Table2', $.param({ ids: ids }, true), function (partialView) {
            $("#av-row-2").html(partialView);
        });

        expandTable();

    }
路线 这些将保留为默认值

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }
}
“ids”是这样一个数组:
var数组=[1,2,3,4,5]

同样,它在调试中工作良好,但现在返回404,因为它位于web服务器上

想法

更新


我能够通过将我的应用程序名硬编码到ajax调用中来实现这一点,这样
{application name}/Home/Table
。。这正如预期的那样有效。如果应用程序是以另一个名称部署的,如何动态地执行此操作才能正常工作?

您好,您可以尝试更改此行:
$.get('Home/Table2',$.param({ids:ids},true),function(partialView)
如下:
$.get('../Home/Table2',$.param({ids:ids},true),function(partialView)

注意:将两个点和正斜杠放在家前面,将解决您的问题

更改的ajax代码:

var submitAgmtIds = function submitAgmtIds(ids) {

        $.get('../Home/Table2', $.param({ ids: ids }, true), function (partialView) {
            $("#av-row-2").html(partialView);
        });

        expandTable();

    }
希望以上信息有用,请告诉我您的想法或反馈

谢谢


Karthik

请参见编辑..它们在构建项目时保留为默认值。它位于主控制器中AJAX调用发生的页面URL是什么?哪个版本的IIS以及它在经典模式下运行?IIS 7.5…我相信它在集成模式下运行