![](/img/trans.png)
[英]Asp.net MVC 5 Ajax POST throws exception 404 (Not Found) after application is published
[英]asp.net mvc - When application published to IIS the controller action returns 404
我有一個正在調試並在本地運行的應用程序。 當我將其發布到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服務器上。
思考?
UPDATE
通過將我的應用程序名稱硬編碼到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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.