Razor View Pageにネームスペースをインポートする方法
最後に答えを見つけました。
@using MyNamespace
VB.Netの場合:
@Imports Mynamespace
アプリ全体に名前空間を含める場合は、@ Javad_Amiryの回答をご覧ください。
最初の方法は、名前空間を現在のファイルのみにインポートする@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
を追加する必要があります。
図書館用
@using MyNamespace
モデル用
@model MyModel
ASP.NET MVC 3 Preview1では、Global.asax.csのこのコードを使用して、すべてのかみそりビューに名前空間をインポートできます。
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
RTMでこれがWeb.configセクションを通して行われることを願っています。
私はこれを見つけました 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の前に実行されます
知っておくべき1つの問題は、Views
フォルダー内のweb.config
を介してネームスペースをインポートするとき、そのnamespace
がその folder のビューに対して _ just _ としてインポートされることです。 area views にnamespace
をインポートしたい場合は、areaのnamespace
フォルダにあるそのエリアのweb.config
ファイルにあるそのViews
もインポートする必要があります。
あなたはこれを試すことができます
@using MyNamespace
名前空間とライブラリ用
@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>
}
「using MyNamespace」はMVC3 RTMで機能します。お役に立てれば。
かみそりビューで名前空間をインポートするには、以下のように追加する必要があります。
@using XX.YY.ZZ
必要に応じて、次のいずれかの方法を使用できます。
後続のすべてのビューで必要な場合は、「using your.domainName;」を追加します_ViewStart.cshtmlで。詳細については、以下を参照してください。 _ ViewStart.cshtmlレイアウトファイルはどこでどのようにリンクされていますか?
または、説明されているように、View web.configにアセンブリ参照を追加します: Asp.Net MVC 3のすべてのビューで@usingをどのように実装しますか?