2016-12-01 38 views
1

我有單獨的資源組件,我希望每個剃鬚刀視圖都有權訪問它。@默認在剃刀視圖中使用MVC 5

現在我把@using Res = MyProject.Web.Resources;在每一個需要它的視圖(後來所有頁面)和

@Res.TheNeededResource.TheField 

訪問的資源我試圖將種源的命名空間,但沒有成功

添加到web.config文件中查看文件夾
<add namespace="MyProject.Web.Resources" /> 

,如果我在視圖中添加IDE完整路徑命名凸顯了命名空間我的配置已經添加冗餘 - 當我將其刪除 - 錯誤

如何正確添加該名稱空間?或者其他方式?

+0

您可以將web.config部分,添加到您的答案 –

+0

的http:// stackoverfl ow.com/a/7586619/5062791 – ColinM

+0

您是否在網絡配置中嘗試了<'? – DavidG

回答

0

在你web.config,極有可能在Views文件夾中的文件,你可以用這樣的別名添加命名空間:

<namespaces> 
    ... 
    <add namespace="Res=MyProject.Web.Resources" /> 
</namespaces> 

現在你可以打電話給你的代碼,你會之前:

@Res.TheNeededResource.TheField 

這是Razor的一個未記錄的功能,即使它是有效的語法,IDE也可能會將其呈現爲錯誤。這意味着你可能會更好改變基礎網頁類型以你自己的,就像這樣:

public abstract class BaseViewPage : BaseViewPage<object> 
{ 
} 

public abstract class BaseViewPage<TModel> : WebViewPage<TModel> 
{ 
    public TheNeededResource Res => MyProject.Web.Resources.TheNeededResource 
} 

在你web.config改變基本頁類型來自己:

<pages pageBaseType="MyProject.Web.BaseViewPage"> 
在你的意見

現在你可以使用Res物業就像您使用Html

@Res.TheField