2012-06-12 69 views
1

我試圖創建一個HtmlExtension來檢索當前視圖的名稱。HtmlHelper擴展找到視圖名稱

但是,我不想讓請求視圖(例如「/ Account/LogOn」的「LogOn」),而是正在處理的實際文件(例如"_Layout")。

我能找到的最接近的是html.ViewDataContainer.ToString(),它返回{ASP._Page_Views_Shared__Layout_cshtml}例如,但我不認爲解析這將是一個好主意。

此信息在Html Extension中可用嗎?

在此先感謝。

+1

難道你有機會來看看這個帖子? http://stackoverflow.com/q/1268763/1437962 –

+0

是的,但它給控制器的行動,而不是視圖名稱/路徑 – Schiavini

回答

2

您可以創建這樣一個擴展,

public static string ViewName(this WebViewPage page) 
{ 
    return Path.GetFileNameWithoutExtension(page.VirtualPath); 
} 
從剃刀視圖

然後,

The view name is: @this.ViewName() 

或不帶擴展名,

The view name is: @Path.GetFileNameWithoutExtension(VirtualPath)