我有一个在本地调试和运行的应用程序就好了。当我将它发布到 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
..这按预期工作。如果应用程序以其他名称部署,我如何动态地执行此操作以便它可以工作?
嗨,您可以尝试更改此行:$.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();
}
希望以上信息有用,请让我知道您的想法或反馈
谢谢
卡尔蒂克
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句