Câu trả lời:
Cuối cùng cũng tìm được câu trả lời.
@using MyNamespace
Đối với VB.Net:
@Imports Mynamespace
Hãy xem câu trả lời của @ravy amir nếu bạn muốn bao gồm một không gian tên trên ứng dụng.
Cách đầu tiên là sử dụng @using
câu lệnh trong .cshtml
các tệp, chỉ nhập một không gian tên vào tệp hiện tại và cách thứ hai:
Trong tệp "web.config" trong Views
thư mục "" của dự án của bạn (lưu ý rằng đây không phải là web.config chính trong thư mục gốc của dự án) , tìm phần này:
<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>
bạn có thể thêm không gian tên tùy chỉnh của mình như thế này:
<add namespace="My.Custom" />
sẽ thêm không gian tên vào tất cả các tệp .cshtml (và / hoặc .vbhtml); bạn cũng có thể thay đổi chế độ xem kế thừa từ đây, như:
<pages pageBaseType="My.Custom.MyWebViewPage">
Trân trọng.
CẬP NHẬT: Nhờ @ Nick Silberstein
nhắc nhở của anh ấy về các lĩnh vực! Anh nói:
Nếu bạn đang làm việc trong một khu vực , bạn phải thêm vào namespace
bên Web.config
dưới /Areas/<AreaName>/Views/
chứ không phải
/Views/
Trong ASP.NET MVC 3 Preview1, bạn có thể nhập một không gian tên trên tất cả các chế độ xem dao cạo của bạn với mã này trong Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Tôi hy vọng trong RTM điều này được thực hiện thông qua phần Web.config.
Tôi tìm thấy http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx giải thích cách thêm một không gian tên tùy chỉnh cho tất cả các trang dao cạo của bạn.
Về cơ bản bạn có thể làm điều này
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
và đặt đoạn mã sau vào hội nghịInfo.cs của bạn
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
phương thức InitializeApplication sẽ được thực thi trước Application_Start trong global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
đã được thay đổi thành System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Một vấn đề mà bạn cần phải biết là khi bạn nhập một namespace qua web.config
trong Views
thư mục, mà namespace
được nhập khẩu JUST cho quan điểm trong đó thư mục . Có nghĩa là nếu bạn muốn nhập một chế độ xemnamespace
trong khu vực , bạn cũng phải nhập tệp đó, trong tệp namespace
của khu vực đó web.config
, nằm trong Views
thư mục của khu vực ;
Đối với không gian tên và thư viện
@using NameSpace_Name
Dành cho người mẫu
@model Application_Name.Models.Model_Name
Đối với Lặp lại danh sách trên Trang Dao cạo (Bạn phải sử dụng vòng lặp foreach để truy cập các mục danh sách)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Bạn có thể thử cái này
@using MyNamespace
Tôi nghĩ để nhập không gian tên trong chế độ xem dao cạo, bạn chỉ cần thêm cách dưới đây:
@using XX.YY.ZZ
Tùy thuộc vào nhu cầu của bạn, bạn có thể sử dụng một trong các phương pháp sau:
nếu được yêu cầu trong tất cả các chế độ xem tiếp theo, sau đó thêm "bằng cách sử dụng your.domainName;" trong _ViewStart.cshtml. Bạn có thể tìm hiểu thêm về điều này trong: Tệp bố cục _ViewStart.cshtml được liên kết ở đâu và như thế nào?
Hoặc thêm tham chiếu hội trong View web.config như được mô tả bởi những người khác được giải thích trong: Làm thế nào để bạn triển khai một @use trên tất cả các Chế độ xem trong Asp.Net MVC 3?