簡體   English   中英

asp.net mvc-當應用程序發布到IIS時,控制器操作將返回404

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM