14

.検索語が(ピリオド)で終わるリクエストを行おうとすると、.NetMVCから404応答が返されます。これは私が使用しているルートです:

routes.MapRoute(
                "Json",
                "Remote.mvc/{action}/{searchTerm}/{count}",
                new { controller="Remote", count=10}
            );

検索は検索語の内側でうまく機能し.、それで終わることはできません。この検索リクエストをルーティングする方法について何か考えはありますか?

4

2 に答える 2

24

同様の問題を解決しました (/music/REM のようなパスに問題がありました)。次の行を system.webServer/handlers セクションに追加しました (ケースに合わせて調整しました)。

 <add name="UrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="Remote.mvc/*" verb="GET"/>

私も指摘しましたが、

<httpRuntime relaxedUrlToFileSystemMapping="true" />

ピリオド (.) がスラッシュの中間のペア (例: /abc/de/f) のどこかにある場合にのみ機能し、ピリオドがファイル タイプの区切り記号のように見える場合 (例: /abc/de/fg) は機能しません。

于 2011-09-29T14:22:40.230 に答える
5

.NET 4.0 を使用している場合は、web.config の system.web セクションでこのフラグを設定すると、許可されます。

<httpRuntime relaxedUrlToFileSystemMapping="true" />

私はそれをテストしましたが、動作します。Haackに説明があります。

于 2010-08-22T17:34:55.100 に答える