Antworten:
Endlich die Antwort gefunden.
@using MyNamespace
Für VB.Net:
@Imports Mynamespace
Werfen Sie einen Blick auf @ravy Amiry Antwort , wenn Sie einen Namespace über die App enthalten sein sollen.
Der erste Weg ist die @using
Anweisung use in .cshtml
Dateien, die einen Namespace nur in die aktuelle Datei importiert, und der zweite:
Suchen Sie in der Datei "web.config" im Views
Verzeichnis " " Ihres Projekts (beachten Sie, dass es sich nicht um die Hauptdatei web.config im Stammverzeichnis des Projekts handelt) diesen Abschnitt:
<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>
Sie können Ihren benutzerdefinierten Namespace folgendermaßen hinzufügen:
<add namespace="My.Custom" />
Dadurch wird der Namespace allen .cshtml- (und / oder .vbhtml-) Dateien hinzugefügt. Außerdem können Sie von hier aus die Vererbung von Ansichten ändern, z.
<pages pageBaseType="My.Custom.MyWebViewPage">
Grüße.
UPDATE: Danke an @ Nick Silberstein
an seine Erinnerung an Gebiete! Er sagte:
Wenn Sie in einem Bereich arbeiten , müssen Sie namespace
den Bereich Web.config
unter /Areas/<AreaName>/Views/
und nicht
hinzufügen/Views/
Für die Bibliothek
@using MyNamespace
Für Modell
@model MyModel
using
am Anfang einer .cs-Datei ist ein C # -Compiler-Schlüsselwort. Das @using
am Anfang einer .cshtml-Datei ist ein Hinweis auf die Razor-Template-Engine.
In ASP.NET MVC 3 Preview1 können Sie mit diesem Code in Global.asax.cs einen Namespace in alle Ihre Rasiereransichten importieren
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Ich hoffe, dass dies in RTM über den Abschnitt Web.config erledigt wird.
Ich habe diese http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx gefunden, in der erklärt wird, wie Sie all Ihren Rasiermesserseiten einen benutzerdefinierten Namespace hinzufügen.
Grundsätzlich können Sie dies machen
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
und fügen Sie den folgenden Code in Ihre AssemblyInfo.cs ein
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
Die Methode InitializeApplication wird vor Application_Start in global.asax ausgeführt
Microsoft.WebPages.Compilation.AddGlobalImport
wurde in geändert System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Ein Problem, das Sie kennen müssen, ist, dass beim Importieren eines Namespace über web.config
in Views
Ordner NUR für Ansichten in diesem Ordnernamespace
importiert wird . Wenn Sie eine Ansicht in einem Bereich importieren möchten , müssen Sie diese auch in die Datei dieses Bereichs importieren , die sich im Ordner des Bereichs befindet .namespace
namespace
web.config
Views
Für Namespace und Bibliothek
@using NameSpace_Name
Für Modell
@model Application_Name.Models.Model_Name
Zum Iterieren der Liste auf der Rasiermesserseite (Sie müssen foreach-Schleife verwenden, um auf die Listenelemente zuzugreifen.)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Sie können dies versuchen
@using MyNamespace
Ich denke, um den Namespace in der Rasiermesseransicht zu importieren, müssen Sie nur den folgenden Weg hinzufügen:
@using XX.YY.ZZ
Je nach Bedarf können Sie eine der folgenden Methoden anwenden:
Wenn dies in allen nachfolgenden Ansichten erforderlich ist, fügen Sie "using your.domainName" hinzu. in _ViewStart.cshtml. Weitere Informationen hierzu finden Sie unter: Wo und wie ist die Layoutdatei _ViewStart.cshtml verknüpft?
Oder fügen Sie in View web.config eine Assembly-Referenz hinzu, wie von anderen beschrieben in: Wie implementieren Sie eine @Verwendung in allen Ansichten in Asp.Net MVC 3?