วิธีนำเข้าเนมสเปซในหน้าดูมีดโกน
วิธีนำเข้าเนมสเปซในหน้าดูมีดโกน
คำตอบ:
ในที่สุดก็พบคำตอบ
@using MyNamespace
สำหรับ VB.Net:
@Imports Mynamespace
ลองดูที่คำตอบของ @ravy amiryหากคุณต้องการรวม namespace ไว้ในแอพ
วิธีแรกคือใช้@using
คำสั่งใน.cshtml
ไฟล์ที่นำเข้าเนมสเปซไปยังไฟล์ปัจจุบันเท่านั้นและที่สอง:
ในไฟล์ "web.config" ในViews
ไดเรกทอรี "" ของโครงการของคุณ (สังเกตว่าไม่ใช่ web.config หลักในรูทของโครงการ)ค้นหาส่วนนี้:
<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>
คุณสามารถเพิ่มเนมสเปซที่กำหนดเองดังนี้:
<add namespace="My.Custom" />
ที่จะเพิ่มเนมสเปซให้กับไฟล์. cshtml (และ / หรือ. vbhtml) ทั้งหมด นอกจากนี้คุณสามารถเปลี่ยนการรับชมจากที่นี่เช่น:
<pages pageBaseType="My.Custom.MyWebViewPage">
ความนับถือ.
อัปเดต:ขอบคุณ @ ด้วยNick Silberstein
การเตือนความจำของเขาเกี่ยวกับพื้นที่! เขาพูดว่า:
หากคุณกำลังทำงานอยู่ในพื้นที่ที่คุณต้องเพิ่มnamespace
ภายในWeb.config
ภายใต้/Areas/<AreaName>/Views/
มากกว่า
/Views/
สำหรับห้องสมุด
@using MyNamespace
สำหรับรุ่น
@model MyModel
using
ที่จุดเริ่มต้นของ CS ไฟล์เป็นคำหลักเรียบเรียง C # @using
ที่จุดเริ่มต้นของไฟล์ .cshtml คือคำใบ้กับแม่แบบเครื่องยนต์มีดโกน
ใน ASP.NET MVC 3 Preview1 คุณสามารถนำเข้าเนมสเปซในทุกมุมมองมีดโกนของคุณด้วยรหัสนี้ใน Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
ฉันหวังว่าใน RTM สิ่งนี้จะทำผ่านส่วน Web.config
ฉันพบhttp://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspxซึ่งอธิบายวิธีการเพิ่มเนมสเปซที่กำหนดเองในหน้ามีดโกนของคุณทั้งหมด
โดยทั่วไปคุณสามารถทำสิ่งนี้
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
และใส่รหัสต่อไปนี้ใน AssemblyInfo.cs ของคุณ
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
วิธีการเริ่มต้นการสมัครจะถูกดำเนินการก่อน Application_Start ใน global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
ปัญหาหนึ่งที่คุณต้องทราบก็คือเมื่อคุณนำเข้า namespace ผ่านweb.config
ในViews
โฟลเดอร์ที่namespace
นำเข้าเพียงเพื่อดูในโฟลเดอร์นั้น หมายความว่าถ้าคุณต้องการนำเข้าnamespace
ในมุมมองพื้นที่คุณจะต้องนำเข้านั้นnamespace
ในweb.config
ไฟล์ของพื้นที่นั้นซึ่งอยู่ในViews
โฟลเดอร์ของพื้นที่
สำหรับ namespace และ Library
@using NameSpace_Name
สำหรับรุ่น
@model Application_Name.Models.Model_Name
สำหรับการวนซ้ำรายการในหน้ามีดโกน (คุณต้องใช้ foreach loop เพื่อเข้าถึงรายการ)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
คุณสามารถลองสิ่งนี้
@using MyNamespace
"using MyNamespace" ทำงานใน MVC3 RTM หวังว่านี่จะช่วยได้
ฉันคิดว่าในการสั่งซื้อ namespace ในมุมมองมีดโกนคุณเพียงแค่ต้องเพิ่มวิธีด้านล่าง:
@using XX.YY.ZZ
ขึ้นอยู่กับความต้องการของคุณคุณสามารถใช้วิธีใดวิธีหนึ่งต่อไปนี้:
หากจำเป็นในมุมมองที่ตามมาทั้งหมดเพิ่ม "using your.domainName;" ใน _ViewStart.cshtml คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ใน: ไฟล์โครงร่าง _ViewStart.cshtml เชื่อมโยงที่ไหนและอย่างไร
หรือเพิ่มการอ้างอิงแอสเซมบลีในมุมมอง web.config ตามที่อธิบายโดยผู้อื่นที่อธิบายไว้ใน: คุณใช้ @ ใช้ในมุมมองทั้งหมดใน Asp.Net MVC 3 ได้อย่างไร