web-dev-qa-db-ja.com

Razor View Pageにネームスペースをインポートする方法を教えてください。

Razor View Pageにネームスペースをインポートする方法

698
Amitabh

最後に答えを見つけました。

@using MyNamespace

VB.Netの場合:

@Imports Mynamespace

アプリ全体に名前空間を含める場合は、@ Javad_Amiryの回答をご覧ください。

797
Amitabh

最初の方法は、名前空間を現在のファイルのみにインポートする@usingファイルで.cshtmlステートメントを使用する方法です。

プロジェクトの「Views」ディレクトリにある「web.config」ファイル内(プロジェクトのルートの not メインweb.config)に注意してください)、このセクションを見つけます:

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

次のようにカスタム名前空間を追加できます。

<add namespace="My.Custom" />

これにより、すべての.cshtml(および/または.vbhtml)ファイルに名前空間が追加されます。また、次のようにビューの継承をここから変更できます。

<pages pageBaseType="My.Custom.MyWebViewPage">

よろしく。


UPDATE:@Nick Silberstein、地域に関するリマインダーに感謝します!彼は言った:

areaで作業している場合は、Web.configではなく、/Areas/<AreaName>/Views/内の/Views/の下にnamespaceを追加する必要があります。

388
javad amiry

図書館用

@using MyNamespace

モデル用

@model MyModel
29

ASP.NET MVC 3 Preview1では、Global.asax.csのこのコードを使用して、すべてのかみそりビューに名前空間をインポートできます。

Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");

RTMでこれがWeb.configセクションを通して行われることを願っています。

27
Germán

私はこれを見つけました 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")]

メソッドInitializeApplicationはglobal.asaxのApplication_Startの前に実行されます

16
k-dev

知っておくべき1つの問題は、Viewsフォルダー内のweb.configを介してネームスペースをインポートするとき、そのnamespaceがその folder のビューに対して _ just _ としてインポートされることです。 area views namespaceをインポートしたい場合は、areaのnamespaceフォルダにあるそのエリアのweb.configファイルにあるそのViewsもインポートする必要があります。

14
user933765

あなたはこれを試すことができます

@using MyNamespace
9
Abhishek Siddhu

名前空間とライブラリ用

@using NameSpace_Name

モデル用

@model Application_Name.Models.Model_Name 

かみそりページのリストを繰り返すために(あなたはリストアイテムにアクセスするためにforeachループを使用しなければなりません)

@model List<Application_Name.Models.Model_Name>

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

「using MyNamespace」はMVC3 RTMで機能します。お役に立てれば。

3
Howard

かみそりビューで名前空間をインポートするには、以下のように追加する必要があります。

@using XX.YY.ZZ
2
HiteshAjudiya

必要に応じて、次のいずれかの方法を使用できます。

0
Imran Javed