如何从非引用dll导入视图中的模型类

时间:2012-10-29 15:33:38

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

对不起我的英语,它不是我的母语。

我正在写一个大型医疗系统的网络访问。

使用ASP.NET MVC 4.碰巧模型和控制器位于另一个dll中,即web应用程序启动时加载的内容。控制器在Unity容器中注册,一切正常。

但是在View中不起作用直接使用模型类。 Razor视图引擎找不到它们的命名空间。

如何解决?如何使用加载到内存中的ViewEngine命名空间库,但是没有mvc-project的参考?

提前感谢您的建议。

1 个答案:

答案 0 :(得分:1)

有两种方法可以在ASP.NET MVC中向Razor视图添加命名空间。

方法1

第一种方法是在.cshtml文件中使用@using语句,该文件仅将命名空间导入当前文件。

示例: -

@using Namespace1
@using Namespace2.SomeClass

方法2

,第二种方法是在项目的View目录的web.config中定义这些名称空间。

enter image description here

实施例: -

<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
    .
    <!-- can more more here... -->
  </namespaces>
</pages>

或者您也可以像这样添加自定义命名空间:

<add namespace="Custom.Yasser" />
<add namespace="Custom.Mohsin" />

Source