如何在剃刀视图页面导入命名空间?


当前回答

我找到了这个http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx,它解释了如何向所有剃刀页面添加自定义名称空间。

基本上你可以做这个

using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
   public static void InitializeApplication()
   {
       CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
   }
}

并将以下代码放入您的AssemblyInfo.cs中

[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]

在global.asax中,InitializeApplication方法将在Application_Start之前执行

其他回答

您必须知道的一个问题是,当您通过web导入名称空间时。在Views文件夹中的config,该命名空间仅为该文件夹中的视图导入。意思是如果你想在一个区域视图中导入一个命名空间,你也必须在该区域的web中导入该命名空间。配置文件,位于区域的视图文件夹;

为图书馆

@using MyNamespace

为模型

@model MyModel

我认为为了在剃刀视图中导入命名空间,你只需要添加以下方式:

@using XX.YY.ZZ

对于命名空间和库

@using NameSpace_Name

为模型

@model Application_Name.Models.Model_Name 

对于在Razor页面上迭代列表(你必须使用foreach循环访问列表项)

@model List<Application_Name.Models.Model_Name>

@foreach (var item in Model)
   {  
          <tr>
                <td>@item.srno</td>
                <td>@item.name</td>
         </tr>  
   }

你可以试试这个

@using MyNamespace