我有一个正在调试并在本地运行的应用程序就好了。当我将其发布到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();
}
ROUTE 这些保留为默认值......
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
..这可以按预期工作。我如何动态地执行此操作,以便在以其他名称部署应用程序时它将起作用?
答案 0 :(得分:0)
您好,您可以尝试更改此行:$.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