在MVC 5 Razor页面中使用VB.Net模块

我有一个用VB.Net编写的模块,该模块具有多个只读属性。看起来像这样:

Module Name1
   Public ReadOnly Property ClientID As String
      Get
         Return "[some data here]"
      End Get
   End Property

   Public ReadOnly Property ClientKey As String
      Get
         Return "[some data here]"
      End Get
   End Property
End Module

这里没什么好看的。我想要做的是像这样在MVC 5 Razor页面中使用此模块:

<span>@Name1.ClientID - @Name1.ClientKey</span>

再次,没有幻想。但是运行代码会产生以下错误:

在此上下文中无法访问Name1,因为它是“朋友”。

默认情况下,模块具有朋友访问权限,这阻止了它们在当前程序集之外的访问。这就是我要的。但是当从Razor页面调用时,它不起作用。我已经检查以确保名称空间已导入,但没有成功。 (更改该模块的公共访问权限会使事情正常进行,但我不希望将其公开。)

我在做什么错了?

iCMS 回答:在MVC 5 Razor页面中使用VB.Net模块

我在这里找到了解决问题的方法:ASP.NET MVC: How to set global ViewBag properties and have them available in each View

通过创建自定义ActionFilter,我能够设置ViewBag属性并将其值设置为模块中的属性。然后,我将该过滤器添加到GlobalFilters集合中。从那里,我可以在Razor页面中轻松访问ViewBag属性。

本文链接:https://www.f2er.com/1634354.html

大家都在问