ユーザーが製品に対して「質問する」ページがあります。ASP.NET MVC 3 - エリア内のルーティングを持つエッジケース
ルートがある:
context.MapRoute(
"Q&A - Ask - by Product",
"{someProductUri}/questions/ask",
new { controller = "Questions", action = "Ask" }
);
一致する:
/車/質問/尋ねる
/電話/質問/
を尋ねるここでアクションがあります:
public class QuestionsController : Controller
{
public ViewResult Ask(string someProductUri)
{
// ...
}
}
問題は、ユーザーがページ内で商品を選択できるようにする必要があることです。たとえば、URIであらかじめ選択されている商品はありません。このコントローラは、エリアにあるので
、この "デフォルトのURLは、" このようになります:
/myarea /質問/私が得るとき、だから、何が起こっているかである
を尋ねます"someProductUri"は "myarea"に設定され、あらゆる種類の悲しみを引き起こします。
両方のURLのセットに対して同じアクション/ビューを再利用したいのですが、ルート値がデフォルトURLの場合は「myarea」に設定しないようにします。
希望があれば - どんなアイデアですか?
私は別個のルートが必要ですか? "someProductUri"が "myarea"にならないようにルート制約を追加して、ルートと一致せずデフォルトに戻すことはできますか?
はい、私はそれを行うことができましたが、私はこれがデフォルトのエリアルートで処理できることを望んでいました。 – RPM1984
あなたのルートが 'myarea'にマッチするのを止めるための制約を追加することができます。 – SLaks
正確には今何をしようとしていますか:) "notEqualtoareaNameconstraint"。 :) – RPM1984