【发布时间】: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