0

サーバー(IIS6)でのルーティングに問題があります。開発環境では問題なく動作します。

routes.MapRoute(
       "FindCities", 
       "FindCities/{state_id}",
        new { controller = "Regions", action = "FindCitiesByStateID", state_id = "" });

ここで私はこのアクションを呼び出します:

   $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "FindCities/" + state_id,
            data: "{}",
            dataType: "json" 
            ...

私が持っているすべてのルート:

            routes.MapRoute(
                "Default",
                "{controller}.aspx/{action}/{id}",
                new { action = "Index", id = "" }
              );

            routes.MapRoute(
              "Root",
              "",
              new { controller = "Home", action = "Index", id = "" }
            );

「FindCities.aspx/」+state_idと「FindCities.aspx/{state_id}」などのURLを試しましたが、正しい方法が見つかりません。IIS6のルートを作成する正しい方法は何ですか?TIA

4

2 に答える 2

0

@1gn1ter jquery.ajax url @Url.Action("") メソッドの使用を検討しましたか? @Url.Action("") を使用すると、実行時に URL 全体を解決できます。したがって、開発環境と本番環境の両方で一致します。

その特定のルートを使用する必要がある場合は、 @Url.RouteUrl() を使用してルート名をパラメーターとして渡すこともできます。

 $("#something").click(function(){

    var values = {cityId: $("#txtCity").val() }

    $.ajax({    
         //Other ajax definitions like type, content, datatype, etc

         url: '@Url.Action("YourActionName", "YourControllerName")',    
         data: values, 


     success: function(data){    
//Do something    
},    
             error: function(x, y, z){    
//Something bad happened  
} 

     }); 
    });
于 2011-09-01T17:25:14.133 に答える
0

直接の URL を書きました。IIS6 のルートの書き方を知っている場合は、回答してください。

        $.ajax({
            type: "GET",
            contentType: "application/json; charset=utf-8",
            url: "Regions.aspx/FindCitiesByStateID/",
            data: 'state_id=' + state_id,
            dataType: "json"
            ...
于 2010-02-10T14:25:30.607 に答える