説明している動作を再現できませんでした。ここで私がやった手順は以下のとおりです。
- が新しいエリアを追加し、デフォルトのテンプレート
- を使用して、新しいASP.NET MVC 2プロジェクトを作成しますが
~/Areas/AREANAME/Controller/FooController.cs
内FooControllerを追加Visual Studioのウィザード
を使用してAREANAME
と呼ばれます:
public class FooController : Controller
{
public ActionResult Index()
{
return View();
}
}
- NEを追加
~/Areas/AREANAME/Views/Shared/Site.Master
- に
~/Views/Shared/Site.Master
からマスターページをコピー、貼り付けw Index
ビューはFooController
のIndex
アクションに対応し、マスターページを使用しています。デフォルトのままにしておきます。どこかの領域のマスターページ内の
は、以下を追加(またはFooControllerのIndexビュー内に、それは本当に問題ではありません):
<%= Url.Action("Index", "Home", new { area = "" }) %>
- は、サイトを実行し、
/AREANAME/foo/index
に移動します。
- 正しいURLが生成されます。
/
次のURLが生成されたヘルパーのarea=""
一部削除した場合:/AREANAME/Home
を。
だから?
こんにちはダリン...私は今それを試してみましょう。 – TiagoDias
こんにちはダーリン...あなたの作品は魅力のように動作します!!私は私のプロジェクトで間違って何をしているのか分かります...あなたにいつ結論があるか教えてください。おかげで – TiagoDias
ダーリン...ありがとうU verry。私はこの "問題"で数時間を失ってしまったが、問題は実際にルーティングの問題だった。私はエリアにマッチするルートを書いたので、アクションリンクは常に自分の "ルート"の代わりに私のエリアをマップします。あなたの時間に申し訳ありませんが、あなたは本当にこの1つで私を助けた;)ありがとう – TiagoDias