Respostas:
Finalmente encontrei a resposta.
@using MyNamespace
Para VB.Net:
@Imports Mynamespace
Dê uma olhada na resposta de @ravy amiry se você quiser incluir um espaço para nome no aplicativo.
A primeira maneira é usar a @using
instrução nos .cshtml
arquivos, que importa um espaço para nome apenas no arquivo atual e a segunda:
No arquivo "web.config" no Views
diretório " " do seu projeto (observe que não é o principal web.config na raiz do projeto) , localize esta seção:
<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>
você pode adicionar seu espaço para nome personalizado assim:
<add namespace="My.Custom" />
que adicionará o espaço para nome a todos os arquivos .cshtml (e / ou .vbhtml); Além disso, você pode alterar a herança de visualizações a partir daqui, como:
<pages pageBaseType="My.Custom.MyWebViewPage">
Saudações.
ATUALIZAÇÃO: Obrigado a @ Nick Silberstein
por seu lembrete sobre áreas! Ele disse:
Se você estiver trabalhando em uma área , adicione o namespace
dentro do Web.config
sub em /Areas/<AreaName>/Views/
vez de
/Views/
Para Biblioteca
@using MyNamespace
Para o modelo
@model MyModel
using
no início de um arquivo .cs é uma palavra-chave do compilador C #. O @using
início de um arquivo .cshtml é uma dica para o mecanismo de modelo do Razor.
No ASP.NET MVC 3 Preview1, você pode importar um espaço para nome em todas as suas visualizações de navalha com esse código no Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Espero que no RTM isso seja feito através da seção Web.config.
Encontrei este http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx, que explica como adicionar um espaço para nome personalizado a todas as suas páginas de barbear.
Basicamente, você pode fazer isso
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
e coloque o seguinte código no seu AssemblyInfo.cs
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
o método InitializeApplication será executado antes do Application_Start em global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
foi alterada para System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Um problema que você deve saber é que, quando você importa um espaço para nome web.config
na Views
pasta, isso namespace
é importado APENAS para exibições nessa pasta . Significa que se você deseja importar um namespace
em uma área , também deve importar que namespace
, no web.config
arquivo dessa área , localizado na Views
pasta da área ;
Para namespace e Biblioteca
@using NameSpace_Name
Para o modelo
@model Application_Name.Models.Model_Name
Para iterar a lista na página Razor (você deve usar o loop foreach para acessar os itens da lista)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Você pode tentar isso
@using MyNamespace
Eu acho que, para importar o namespace no modo navalha, você só precisa adicionar abaixo o caminho:
@using XX.YY.ZZ
Dependendo da sua necessidade, você pode usar um dos seguintes métodos:
se necessário em todas as visualizações subsequentes, adicione "using your.domainName;" em _ViewStart.cshtml. Você pode encontrar mais informações sobre isso em: Onde e como o arquivo de layout _ViewStart.cshtml está vinculado?
Ou adicione a referência Assembly no View web.config, conforme descrito por outros explicados em: Como você implementa um @using em todos os Views no Asp.Net MVC 3?