1

我在 asp.net mvc 中的视图有些问题。我的 using 指令的命名空间与视图的命名空间发生冲突,导致我的 Razor 生成的类出现编译错误。我对 @model 指令有同样的问题,但使用 global:: 别名修复了它。出于某种原因,对我的 @using 执行相同操作会导致“找不到类型或命名空间‘全局’...”错误。这是我现在所拥有的:

@using SampleSpace.System.Items

@model global::SampleSpace.System.Items.Thing

我想用

@using global::SampleSpace.System.Items

@model global::SampleSpace.System.Items.Thing

但上述错误不断发生。在视图中的 using 指令中使用 global 是否有任何技巧,或者是否有不允许的原因?

4

2 回答 2

3

我不确定这是否能准确回答您的问题,但您能否通过将您感兴趣的命名空间放入 Views 文件夹的 web.config 来解决问题?

 <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <!-- snip -->
        <add namespace="SampleSpace.System.Items" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

在您的视图需要“使用”名称空间的情况下,这通常是一种很好的做法——它使视图本身保持混乱——尽管我没有在你描述的冲突场景中对此进行测试。

或者使用这种方法来避免冲突:

@using items = SampleSpace.System.Items

希望这会有所帮助。

于 2012-11-15T19:42:29.423 回答
1

事实证明,解决这个问题的最简单方法是调整文件属性下的自定义工具命名空间。您可以将其更改为您想要避免任何冲突的任何内容。

于 2013-01-03T19:45:37.007 回答