ビューの現在のフォルダを取得する方法を知っている人はいますか?私はAreasLibも使っているので、パスのプレフィックスを付けずに動的に取得する必要があります。たとえば、http://localhost/myarea/mycontroller/myaction
を入力すると、Project/Areas/myarea/Views/mysubsystem
というパスが表示されます。そうそう、それはビューがであることをフォルダにする必要があるASP.NET MVC - ビューの現在のフォルダ
EDIT:それはどちらかだこと、またはAreasLibに対処するためのMvcSiteMapソースコードを編集します。私は本当にスキルを備えていない、またはそれを処理するためにもっと重要な時間です。
FINAL
それはきれいではありませんが、私は全く選択の余地がなかったです。私は、部分的なビューを使用して、次のヘルパーを使ってメニューコンポーネントをレンダリングし、正しいものを探しています。私はこのバージョンでは欠けているmenu.ascxファイルを扱っていませんが、今のところ常に1つあると仮定しています。
using System;
using System.Web;
using System.Runtime.CompilerServices;
using System.Web.Mvc;
namespace Intranet.Helpers
{
public static class StaticMenuHelper
{
public static string StaticMenu(this HtmlHelper helper, string area, string controller)
{
if (area.Equals("root"))
{
return "/Views/" + controller + "/menu.ascx";
}
else
{
return "/Areas/" + area + "/Views/" + controller + "/menu.ascx";
}
}
}
}
そして私のSite.Master
の中では、 MvcSiteMapまで
<div id="menu">
<% Html.RenderPartial(Html.StaticMenu(ViewContext.RouteData.Values["area"].ToString(), ViewContext.RouteData.Values["controller"].ToString())); %>
</div>
はその後、私はこれを使用する必要がありますAreasLibに対処することができるものへと成長しました。私は本当に、本当にそのlibを変更する時間がありません。
ありがとうございました。
あなたの最終ゲームは何ですか? –
あなたは知りたくありません;)基本的にPhil HaackのAreasLibを使用しているため、私はMvcSiteMapを使用できません。つまり、私のサイトナビゲーションを動的に生成できません。私はリムボーにいる。だから私はパスを得る代わりに、必要なメニューオプションを返すmenu.aspxファイルにリンクします。しかし、それは本質的に見ているので、それほど悪くはありません。 – Kezzer
AreasLib?あれは何でしょう? –