有誰知道如何獲取當前文件夾的視圖被調用?我也使用AreasLib,所以我需要動態獲取它,而不用爲路徑加前綴。例如,如果我做http://localhost/myarea/mycontroller/myaction
它會給我的路徑Project/Areas/myarea/Views/mysubsystem
。所以,是的,它需要的是觀點是在文件夾ASP.NET MVC - 當前文件夾的視圖
編輯:這是不是說,或編輯MvcSiteMap源代碼來處理AreasLib。我沒有真正具備這些技能,或者更重要的是要處理它。
FINAL
這不是很漂亮,但我沒有選擇任何責任。我使用部分視圖來渲染菜單組件,使用以下幫助程序找到正確的。我沒有在這個版本中處理丟失的menu.ascx文件,但是現在我們假設總是會有一個文件。
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
。
<div id="menu">
<% Html.RenderPartial(Html.StaticMenu(ViewContext.RouteData.Values["area"].ToString(), ViewContext.RouteData.Values["controller"].ToString())); %>
</div>
直到MvcSiteMap已經成熟到一些東西,可以處理AreasLib那麼我將不得不使用這一點。我真的,真的沒有時間去修改那個lib。
感謝您的幫助。
你的最終遊戲是什麼? – 2009-07-09 16:22:47
你不想知道;)基本上,因爲我使用Phil Haack的AreasLib,這意味着我不能使用MvcSiteMap,這意味着我無法動態生成我的網站導航。我身陷lim。。所以我得到的路徑,所以我會鏈接到menu.aspx文件,讓我回到我需要的菜單選項。討厭的,但它們本質上是一種觀點,所以它並不是那麼糟糕。 – Kezzer 2009-07-09 16:24:44
AreasLib?那是什麼? – 2009-07-09 17:06:29