在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在此上下文中不可访问,因为它是"Friend"。

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

我做错了什么?

我在这里找到了解决问题的方法:ASP.NET MVC:如何设置全局ViewBag属性并使其在每个View 中可用

通过创建自定义ActionFilter,我可以设置ViewBag属性,并将它们的值设置为模块中的属性。然后我将该过滤器添加到GlobalFilters集合中。从那里,我可以很容易地访问Razor页面中的ViewBag属性。

最新更新