Jawaban:
Akhirnya menemukan jawabannya.
@using MyNamespace
Untuk VB.Net:
@Imports Mynamespace
Lihatlah jawaban @ravy amiry jika Anda ingin menyertakan namespace di seluruh aplikasi.
Cara pertama adalah yang menggunakan @using
pernyataan dalam .cshtml
file, yang mengimpor namespace ke file saat ini saja, dan yang kedua:
Di Views
direktori "web.config" di " " proyek Anda (perhatikan itu bukan web.config utama di root proyek) , temukan bagian ini:
<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>
Anda dapat menambahkan namespace khusus Anda seperti ini:
<add namespace="My.Custom" />
yang akan menambahkan namespace ke semua file .cshtml (dan / atau .vbhtml); Anda juga dapat mengubah tampilan warisan dari sini, seperti:
<pages pageBaseType="My.Custom.MyWebViewPage">
Salam.
UPDATE: Terima kasih kepada @ Nick Silberstein
untuk pengingatnya tentang area! Dia berkata:
Jika Anda bekerja dalam suatu area , Anda harus menambahkan bagian namespace
dalam di Web.config
bawah /Areas/<AreaName>/Views/
daripada
/Views/
Untuk Perpustakaan
@using MyNamespace
Untuk Model
@model MyModel
using
awal file .cs adalah kata kunci kompiler C #. Di @using
awal file .cshtml adalah petunjuk untuk mesin template Razor.
Dalam ASP.NET MVC 3 Preview1 Anda dapat mengimpor namespace pada semua tampilan pisau cukur Anda dengan kode ini di Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Saya harap dalam RTM ini dilakukan melalui bagian Web.config.
Saya menemukan http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx yang menjelaskan cara menambahkan ruang nama khusus ke semua halaman pisau cukur Anda.
Pada dasarnya kamu bisa membuat ini
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
dan letakkan kode berikut di AssemblyInfo.cs Anda
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
metode InitializeApplication akan dijalankan sebelum Application_Start di global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
diubah menjadi System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Satu masalah yang harus Anda ketahui adalah bahwa ketika Anda mengimpor namespace melalui web.config
di Views
folder, yang namespace
diimpor HANYA untuk tampilan di folder itu . Berarti jika Anda ingin mengimpor namespace
dalam tampilan area , Anda juga harus mengimpor itu namespace
, dalam web.config
file area itu , yang terletak di Views
folder area ;
Untuk namespace dan Perpustakaan
@using NameSpace_Name
Untuk Model
@model Application_Name.Models.Model_Name
Untuk Iterate daftar pada Halaman Razor (Anda harus menggunakan foreach loop untuk mengakses item daftar)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Anda bisa mencoba ini
@using MyNamespace
Saya pikir untuk mengimpor namespace dalam tampilan pisau cukur, Anda hanya perlu menambahkan cara di bawah ini:
@using XX.YY.ZZ
Tergantung pada kebutuhan Anda, Anda dapat menggunakan salah satu metode berikut:
jika diperlukan dalam semua tampilan selanjutnya, tambahkan "using your.domainName;" di _ViewStart.cshtml. Anda dapat menemukan lebih banyak tentang ini di: Di mana dan bagaimana file layout _ViewStart.cshtml ditautkan?
Atau tambahkan referensi Majelis di Lihat web.config seperti yang dijelaskan oleh orang lain yang dijelaskan dalam: Bagaimana Anda menerapkan @ menggunakan semua Tampilan di Asp.Net MVC 3?