RazorでASP.NETMVC3を使用していますが、このようなURLを受信できるルートを定義したいと思います。私はMVC3を初めて使用することに注意してください。
/State/Florida/Town/Fort_Lauderdale
/State/Texas/Town/Irvine
/State/Alabama/Town/Auburn
これは、「Town」アクションを使用して、既存の「States」コントローラー(StatesControllerクラス)で処理されるようにしたいと思います。私はこのようなものを持っています:
routes.MapRoute(
"Towns",
"{controller}/{state}/{action}/{town}",
new { controller = "States", action = "Town", state= UrlParameter.Optional, town = UrlParameter.Optional }
明らかに、州も町のパラメータもオプションではありませんが、どうすればよいですか?上記のルートは正しくないと思いますが、パラメータがオプションではないことを示す方法はありませんか?
ここでのもう1つの状況は、上記の場合、コントローラーTown(文字列タウン)で1つのアクションでタウンを処理するふりをしましたが、Razorを使用して個々のタウンファイルを解析できる必要があるということです。私は当初、Town()コントローラーメソッドを使用してTownパラメーターを使用して町のHTMLファイルを提供することを考えていましたが、結局のところ、町の説明に動的データを含めることもできます。それは、私の最善の解決策は、専用のタウンコントローラーを作成し、多くのタウンごとに1つのアクションメソッドを作成することであることを意味しますか?
それをよりよく処理するための提案はありますか?