2016-12-01 36 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