Asp.net mvc 添加到我的命名空间的类在MVC视图中不可用
我已将以下类添加到.NET 3.5 MVC2 VB应用程序中的“我的命名空间”:Asp.net mvc 添加到我的命名空间的类在MVC视图中不可用,asp.net-mvc,namespaces,Asp.net Mvc,Namespaces,我已将以下类添加到.NET 3.5 MVC2 VB应用程序中的“我的命名空间”: Namespace My Public Class Environment Public Shared ReadOnly Property IsProduction As Boolean ...code here... End Property End Class End Namespace 我在整个应用程序中都使用过它,但我不能在视
Namespace My
Public Class Environment
Public Shared ReadOnly Property IsProduction As Boolean
...code here...
End Property
End Class
End Namespace
我在整个应用程序中都使用过它,但我不能在视图中直接引用它。例如,此代码标记“My.Environment”,并表示它不是“My.Environment”的成员:
你在生产吗?
要让视图看到我添加到我的命名空间中,是否需要执行额外的步骤?再次查看您的代码,Jamie是对的。在视图中使用该类之前,必须先实例化该类。假设您正在将实例化变量(例如,环境)传递给模型,则可以执行以下操作:
<p>
Are you are in production? <%= model.IsProduction %>
</p>
你在生产吗?
再看看你的代码,杰米是对的。在视图中使用该类之前,必须先实例化该类。假设您正在将实例化变量(例如,环境)传递给模型,则可以执行以下操作:
<p>
Are you are in production? <%= model.IsProduction %>
</p>
你在生产吗?
您的类环境不是静态类,因此,为了访问其成员,您需要它的实例。你使用它的方式就像它是一个静态类,而不是。如果我正在访问一个共享属性。我可以在不需要环境实例的控制器或其他类中调用“If My.Environment.IsProduction Then…”。我忘记了VB.NET使用的是共享而不是静态。:)您的类环境不是静态类,因此,为了访问其成员,您需要它的实例。你使用它的方式就像它是一个静态类,而不是。如果我正在访问一个共享属性。我可以在不需要环境实例的控制器或其他类中调用“If My.Environment.IsProduction Then…”。我忘记了VB.NET使用的是共享而不是静态。:)查看对Jamie评论的响应-属性是共享的,所以实例是必需的。是的,但在视图中,您无法访问所有内容。实际上,这就是MVC的目的。您只能访问视图中的模型。当然,您可以访问ViewData/ViewBag,但为了访问特定的方法,您可能需要使用HtmlHelper扩展。您是对的。忘了吧。感谢您的详细解释。请参阅对Jamie评论的回复-属性是共享的,因此实例是必要的。是的,但鉴于此,您无法访问所有内容。实际上,这就是MVC的目的。您只能访问视图中的模型。当然,您可以访问ViewData/ViewBag,但为了访问特定的方法,您可能需要使用HtmlHelper扩展。您是对的。忘了吧。谢谢你的详细解释。