Razor View Pageで名前空間をインポートする方法は?
11 に答える
最後に答えを見つけました。
@using MyNamespace
VB.Net の場合:
@Imports Mynamespace
アプリ全体に名前空間を含めたい場合は、@ravy amiry の回答をご覧ください。
最初の方法は、名前空間を現在のファイルのみにインポートするファイル内のuse@using
ステートメントであり、2 番目の方法は次のとおりです。.cshtml
プロジェクトの" " ディレクトリにある "web.config" ファイル(プロジェクトのルートにあるメインの web.config ではないViews
ことに注意してください)で、次のセクションを見つけます。
<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">
よろしく。
更新:Nick Silberstein
エリアに関するリマインダー@ に感謝します! 彼は言った:
area内で作業している場合は、ではなく
namespace
のWeb.config
下に を追加する必要があります/Areas/<AreaName>/Views/
/Views/
図書館用
@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 つの問題はweb.config
、Views
フォルダー内を介して名前空間をインポートすると、そのフォルダー内のビューに対してnamespace
のみインポートされることです。つまり、ある領域のビューに をインポートする場合は、その領域のフォルダにあるその領域のファイルもインポートする必要があります。namespace
namespace
web.config
Views
「MyNamespace の使用」は MVC3 RTM で機能します。お役に立てれば。
かみそりビューで名前空間をインポートするには、以下の方法を追加するだけでよいと思います。
@using XX.YY.ZZ