Odpowiedzi:
W końcu znalazłem odpowiedź.
@using MyNamespace
W przypadku VB.Net:
@Imports Mynamespace
Spójrz na odpowiedź @ravy Amiry, jeśli chcesz dołączyć przestrzeń nazw w aplikacji.
Pierwszym sposobem jest użycie @using
instrukcji w .cshtml
plikach, która importuje przestrzeń nazw tylko do bieżącego pliku, a drugą:
W pliku „web.config” w Views
katalogu „ ” twojego projektu (zauważ, że nie jest to główny plik web.config w katalogu głównym projektu) , znajdź tę sekcję:
<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>
możesz dodać niestandardową przestrzeń nazw w ten sposób:
<add namespace="My.Custom" />
to doda przestrzeń nazw do wszystkich plików .cshtml (i / lub .vbhtml); możesz także zmienić dziedziczenie widoków stąd, na przykład:
<pages pageBaseType="My.Custom.MyWebViewPage">
Pozdrowienia.
AKTUALIZACJA: Dzięki @ Nick Silberstein
do jego przypomnienia o obszarach! Powiedział:
Jeśli pracujesz w obrębie obszaru , należy dodać namespace
w Web.config
niedostatecznie /Areas/<AreaName>/Views/
zamiast
/Views/
W ASP.NET MVC 3 Preview1 możesz zaimportować przestrzeń nazw do wszystkich widoków maszynki do golenia za pomocą tego kodu w Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Mam nadzieję, że w RTM odbywa się to poprzez sekcję Web.config.
Znalazłem ten http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx, który wyjaśnia, jak dodać niestandardową przestrzeń nazw do wszystkich stron maszynki do golenia.
Zasadniczo możesz to zrobić
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
i umieść następujący kod w pliku AssemblyInfo.cs
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
metoda InitializeApplication zostanie wykonana przed Application_Start w global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
na System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Jedną z kwestii, które trzeba wiedzieć, jest to, że podczas importowania nazw poprzez web.config
w Views
folderze, który namespace
jest importowany WŁAŚNIE dla widoków w tym folderze . Znaczy, jeśli chcesz zaimportować namespace
W widoków obszaru , należy również importować, że namespace
w tym obszarze w web.config
pliku, znajduje się w centrum w Views
folderze;
Dla przestrzeni nazw i biblioteki
@using NameSpace_Name
Do modelu
@model Application_Name.Models.Model_Name
Do iteracji listy na stronie Razor (musisz użyć pętli foreach, aby uzyskać dostęp do elementów listy)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Możesz tego spróbować
@using MyNamespace
Myślę, że aby zaimportować przestrzeń nazw w widoku brzytwy, wystarczy dodać poniżej sposób:
@using XX.YY.ZZ
W zależności od potrzeb możesz użyć jednej z następujących metod:
jeśli jest to wymagane we wszystkich kolejnych widokach, dodaj „using your.domainName;” w _ViewStart.cshtml. Więcej informacji na ten temat można znaleźć w: Gdzie i jak jest połączony plik układu _ViewStart.cshtml?
Lub dodaj odwołanie do zestawu w View web.config zgodnie z opisem innych wyjaśnionych w: Jak zaimplementować @use we wszystkich widokach w Asp.Net MVC 3?