【问题标题】:asp.net mvc - When application published to IIS the controller action returns 404asp.net mvc - 当应用程序发布到 IIS 时,控制器操作返回 404
【发布时间】:2017-11-03 03:26:18
【问题描述】:

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

返回 http://server/home/Table2?ids=122026000&ids=123201000&ids=122627000&ids=121514000&ids=123187000 404 (Not Found)

我正在使用 JQuery AJAX 函数将 IDS 传递给操作,然后该操作返回一个局部视图,其中包含从 IDS 适当构造的模型。

控制器

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 array = [1,2,3,4,5]

再次,这在调试中运行良好,但现在返回 404,因为它位于 Web 服务器上。

想法?

更新

我能够通过将我的应用程序名称硬编码到 ajax 调用中来实现这一点,这样 {application name}/Home/Table.. 这可以按预期工作。如果应用程序以其他名称部署,我该如何动态执行此操作?

【问题讨论】:

  • 查看编辑。在构建项目时,它们保留为默认值。
  • 它在家庭控制器中
  • 进行 AJAX 调用的页面的 URL 是什么?
  • 什么版本的 IIS,它是否以经典模式运行?
  • IIS 7.5... 我相信它在集成模式下运行

标签: jquery asp.net ajax asp.net-mvc iis


【解决方案1】:

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

注意:把两个点和斜杠../放在home前面,就可以解决你的问题了。

您更改的 ajax 代码:

var submitAgmtIds = function submitAgmtIds(ids) {

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

        expandTable();

    }

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

谢谢

卡提克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2014-04-04
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多