MVC4.0rcで.net4.5rcを使用しています
以下のコードはMVCwebapiアプリケーションから取得したものですが、通常のasp.netmvcでも同じ動作があります。
私のregisterroutesコードは次のようになります
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "R1",
routeTemplate: "product/{id}",
defaults: new {
controller="Product",
id = RouteParameter.Optional
}
);
これは、ピリオドが含まれていないIDでうまく機能します。ただし、ピリオドが含まれている製品を要求すると、ASP.NETに呼び出しが届かないようです。
同様の投稿で提案されているように、以下の設定を使用すると、末尾がある場合に機能します/しかし、それなしでは機能しません
要約すれば
http://mysite.com/product/AZ0 //works
http://mysite.com/product/AZ.0/ //work with relaxedUrlToFileSystemMapping
http://mysite.com/product/AZ.0 //does not work
応答は404であり、これはASP.NETを使用せずにIISによって返されると思います。上記の最後のようなURLでroutedebuggerを実行すると、routedebuggerのものすら取得できません
IDにピリオドがあるかどうかに関係なく、mysite.com / product / {id}というパターンのURLがある場合に、IISが制御をASP.NETに渡すようにするにはどうすればよいですか。
ありがとう。