【问题标题】:how to use GetLocalResourceObject inside asp.net mvc views如何在 asp.net mvc 视图中使用 GetLocalResourceObject
【发布时间】:2016-08-28 10:54:14
【问题描述】:

实际上我是从 webforms 到 mvc ,在 webfroms 我在我的 html 内的 aspx 页面中使用 <%= GetLocalResourceObject("906") %> 来访问 LocalResourceObject。喜欢:

<label for="formGroupExampleInput"><%= GetLocalResourceObject("906") %>   </label>

我想在 asp.net mvc 5 视图中做同样的事情。

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-4 razor


    【解决方案1】:

    你应该像这样使用@HttpContext

    @HttpContext.GetLocalResourceObject(<virtual-path>, <resource-name-key>)
    

    有关更多信息,请参阅this

    更新1

    关于从数据库中获取资源并在 mvc 中使用它,请参阅this

    【讨论】:

    • 实际上我是从数据库中获取资源,所以没有虚拟路径:(
    • @TheComputerScientist 我添加了获取资源的链接。看到这个。
    • 我检查了链接,但它对我没有帮助。
    • 其实我需要@HttpContext.GetLocalResourceObject(, ) 没有虚拟路径。
    【解决方案2】:

    您可以使用以下语法访问全局和本地资源:

    @Resources.[ResourceName].[Property]
    

    例如,如果您有一个带有 MyLabelText 属性的 Common.resx:

    <label for="formGroupExampleInput">@Resources.Common.MyLabelText</label>
    

    编辑 如果您从数据库中获取它们,那么您如何使用GetLocalResourceObject?这用于 xml 资源。您是否在项目中扩展它以从数据库中获取信息?如果是这样,您可以尝试:

    <label for="formGroupExampleInput">@HttpContext.GetLocalResourceObject("906")</label>
    

    【讨论】:

    • 实际上我正在从数据库中获取资源:(
    • 您应该在问题中提及这一点。查看我的编辑。
    • 它给了我错误。无重载方法 GetLocalResourceObject 带 1 个参数
    • 您阅读我的编辑了吗?在 web 表单中,您使用 GetLocalResourceObject,它是 Page 的成员,并且只有一个参数,因为它会自动从与页面名称匹配的 resx 文件中获取第一个 virtualPath 参数。对于 MVC 中的 HttpContext.GetLocalResourceObject,您需要在第一个参数中传递 resx 文件的名称。我再说一遍,这是来自 resx,而不是 db。因此,如果您说您使用 GetLocalResourceObject("906") 从 db 获取它,那么您的项目会覆盖此函数,您需要将该代码复制到新的 MVC 项目中。
    猜你喜欢
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    相关资源
    最近更新 更多