คำถามติดแท็ก razor

Razor คือภาษาเทมเพลตที่ใช้โดยเว็บเพจ ASP.NET และ ASP.NET MVC (ตั้งแต่เวอร์ชัน 3) มันเพิ่มเลเยอร์ของสิ่งที่เป็นนามธรรมเหนือการสร้าง HTML รองรับการเปลี่ยนระหว่าง HTML มาร์กอัปและรหัส C # หรือ VB อย่างราบรื่น การเปลี่ยนระหว่างมาร์กอัปและรหัสระบุด้วยเครื่องหมาย "@"

7
แทนที่อักขระขึ้นบรรทัดใหม่ด้วย <br /> ในมุมมอง ASP.NET MVC Razor
ฉันมีตัวควบคุม textarea ที่รับอินพุต ฉันพยายามที่จะทำให้ข้อความในมุมมองในภายหลังโดยใช้: @ Model.CommentText นี่เป็นการเข้ารหัสค่าอย่างเหมาะสม อย่างไรก็ตามฉันต้องการแทนที่ตัวแบ่งบรรทัดด้วย&lt;br /&gt;และฉันไม่สามารถหาวิธีเพื่อให้แน่ใจว่าแท็ก br ใหม่ไม่ได้รับการเข้ารหัส ฉันได้ลองใช้ HtmlString แล้วแต่ยังไม่มีโชค

9
มีดโกนมุมมองเครื่องยนต์วิธีการป้อน preprocessor (#if debug)
ฉันกำลังเขียนหน้ามีดโกนแรกของฉันในวันนี้ไม่สามารถหาวิธีเข้าได้ #if debug #else #endif ฉันจะป้อนตัวประมวลผลล่วงหน้าในมีดโกนได้อย่างไร

1
ASP.NET MVC 3 Razor: รวมไฟล์ JavaScript ไว้ในแท็กส่วนหัว
ฉันกำลังพยายามหาไวยากรณ์ของมีดโกนที่เหมาะสมเพื่อรับไฟล์ JavaScript สำหรับ * .cshtml ที่เฉพาะเจาะจงให้อยู่ในแท็กส่วนหัวพร้อมกับไฟล์อื่น ๆ ทั้งหมดที่กำหนดไว้ใน _Layout.cshtml

4
ไวยากรณ์ @ Html.DisplayFor มีไว้เพื่ออะไร
ฉันเข้าใจว่าในมีดโกน @Html จะทำสิ่งต่าง ๆ ที่เป็นระเบียบเช่นสร้าง HTML สำหรับลิงก์ลิงก์อินพุต ฯลฯ แต่ฉันไม่ได้รับฟังก์ชั่น DisplayFor ... ทำไมฉันถึงเขียน: @Html.DisplayFor(model =&gt; model.Title) เมื่อฉันสามารถเขียนได้: @Model.Title

5
วิธีสร้างฟังก์ชั่นในเทมเพลต cshtml
ฉันต้องการสร้างฟังก์ชั่นที่จำเป็นเฉพาะในไฟล์ cshtml เดียว คุณสามารถคิดว่าสถานการณ์ของฉันเป็นวิธีหน้า ASP.NET ซึ่งเป็นบริการเว็บขั้นต่ำที่นำมาใช้ในหน้าเพราะพวกเขาถูกกำหนดขอบเขตในหนึ่งหน้า ฉันรู้เกี่ยวกับผู้ช่วยเหลือ HTML (วิธีการขยาย) แต่ฉันต้องการฟังก์ชั่นของฉันในไฟล์ cshtml เพียงไฟล์เดียว ฉันไม่ทราบวิธีสร้างลายเซ็นฟังก์ชั่นภายในมุมมอง หมายเหตุ : ฉันใช้เครื่องยนต์เทมเพลตมีดโกน

3
@ สื่อสื่อแบบสอบถามและการขัดแย้งไวยากรณ์ ASP.NET MVC
ฉันมีเว็บไซต์ขนาดใหญ่ที่ทำงานใน ASP.NET MVC โดยใช้เอ็นจิ้นมุมมองมีดโกน ฉันมีสไตล์ชีทพื้นฐานซึ่งประกอบด้วยสไตล์ทั่วไปทั้งหมดสำหรับไซต์ทั้งหมด อย่างไรก็ตามในบางครั้งฉันมีรูปแบบเฉพาะของหน้าซึ่งใน&lt;head&gt;หน้า - โดยปกติจะเป็นหนึ่งหรือสองบรรทัด ฉันไม่ชอบใส่ CSS &lt;head&gt;เป็นพิเศษเพราะมันไม่ใช่การแยกข้อกังวลอย่างจริงจัง แต่สำหรับหนึ่งหรือสองบรรทัดที่เป็นจริงสำหรับหน้านั้นฉันไม่ต้องการแนบไฟล์อื่นและเพิ่มแบนด์วิดท์ ฉันมีอินสแตนซ์ที่ฉันต้องการใส่เคียวรีสื่อบันทึกของหน้าเฉพาะลงใน&lt;head&gt;แต่เนื่องจากเคียวรีสื่อใช้ @ สัญลักษณ์และวงเล็บปีกกา {} มันขัดแย้งกับไวยากรณ์ของมีดโกน: @section cphPageHead{ &lt;style&gt; /* PAGE SPECIFIC CSS */ ... @media only screen and (max-width : 960px) &lt;-- the @ symbol here is clashing! { ... } } &lt;/style&gt; } มีวิธีที่ฉันจะได้รับรอบนี้หรือไม่?


20
วิธีรับแอตทริบิวต์ชื่อที่แสดงของสมาชิก Enum ผ่านรหัสมีดโกน MVC
ฉันมีสถานที่ให้บริการในแบบจำลองของฉันที่เรียกว่า "การส่งเสริมการขาย" ที่ประเภทของมันคือการตั้งค่าสถานะ enum ที่เรียกว่า "UserPromotion" สมาชิกของ enum ของฉันมีชุดการแสดงผลดังนี้: [Flags] public enum UserPromotion { None = 0x0, [Display(Name = "Send Job Offers By Mail")] SendJobOffersByMail = 0x1, [Display(Name = "Send Job Offers By Sms")] SendJobOffersBySms = 0x2, [Display(Name = "Send Other Stuff By Sms")] SendPromotionalBySms = 0x4, [Display(Name = "Send …

24
MVC 4 @Scripts“ ไม่มีอยู่”
ฉันเพิ่งสร้างโครงการ ASP.NET MVC 4 และใช้ Visual Studio 2012 RC เพื่อสร้างมุมมองคอนโทรลเลอร์และมุมมองมีดโกนสำหรับIndexและการCreateทำงาน เมื่อฉันมาเพื่อเรียกใช้แอปพลิเคชันและเรียกดูไปยังCreateข้อผิดพลาดต่อไปนี้ก็ปรากฏขึ้น: ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์: CS0103: ชื่อ 'สคริปต์' ไม่มีอยู่ในบริบทปัจจุบัน ปัญหาคือรหัสต่อไปนี้ซึ่งถูกเพิ่มโดยอัตโนมัติที่ด้านล่างของมุมมอง: @section Scripts { @Scripts.Render("~/bundles/jqueryval") } ทำไมสคริปต์ไม่มีอยู่? ฉันดูที่คลาสเว็บเพจพื้นฐานในแอสเซมบลี System.Web.Mvc.dll, v4.0.0.0 ฉันสามารถดูคุณสมบัติผู้ช่วยต่อไปนี้ได้: อาแจ็กซ์ html url แต่ไม่มีชื่อสคริปต์ ความคิดใด ๆ แก้ไข: ไฟล์ Web.config ของฉันมีลักษณะดังนี้ (ไม่ถูกแตะต้องจากไฟล์ Visual Studio ที่สร้างขึ้น): &lt;system.web.webPages.razor&gt; &lt;host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /&gt; &lt;pages …
201 asp.net-mvc  razor 

22
มุมมองมีดโกนที่ขว้างปา“ ชื่อ 'รุ่น' ไม่มีอยู่ในบริบทปัจจุบัน”
หลังจากการเปลี่ยนสถานะใหม่อย่างมีนัยสำคัญในแอปพลิเคชัน MVC 4 ของฉันและมีดโกนแสดงข้อผิดพลาดนี้ขณะทำการดีบัก Views: ชื่อ 'รุ่น' ไม่มีอยู่ในบริบทปัจจุบัน นี่คือบรรทัดของรหัสที่ละเมิด: @model ICollection&lt;DataSourceByActive&gt; ฉันรู้ว่าการใช้งาน@modelถูกต้อง ทำไมสิ่งนี้จึงเกิดขึ้น ฉันจะแก้ไขได้อย่างไร

7
ไฟล์โครงร่าง _ViewStart.cshtml เชื่อมโยงอยู่ที่ไหนและอย่างไร
นี่คือ About.cshtml จากเทมเพลต MVC 3 เริ่มต้น: @{ ViewBag.Title = "About Us"; } &lt;h2&gt;About&lt;/h2&gt; &lt;p&gt; Put content here. &lt;/p&gt; ฉันคาดหวังว่าการอ้างอิงไปยังไฟล์ _ViewStart จะพบได้ในAbout.cshtmlแต่ไม่ชัดเจน ผมมองในglobal.asaxและweb.configแต่ฉันไม่สามารถหาวิธีการที่About.cshtmlไฟล์ "ที่เชื่อมโยง" กับรูปแบบจากแฟ้ม _ViewStart ทุกอย่างทำงานได้ตามที่คาดหวังฉันแค่อยากรู้ว่าเกิดอะไรขึ้นภายใต้ประทุน ...

6
วิธีการอ้างอิงไฟล์. css บนมุมมองมีดโกน
ฉันรู้วิธีตั้งค่าไฟล์. css บนไฟล์ _Layout.cshtml แต่สิ่งที่เกี่ยวกับการใช้สไตล์ชีทบนพื้นฐานต่อการดู? ความคิดของฉันที่นี่คือใน _Layout.cshtml คุณมี&lt;head&gt;แท็กที่จะทำงานด้วย แต่ไม่ใช่ในมุมมองที่ไม่ใช่เลย์เอาต์ของคุณ ไม่ที่&lt;link&gt;แท็กไป?
196 css  asp.net-mvc  razor 


2
ฉันจะเพิ่ม class class ให้กับองค์ประกอบ HTML ที่สร้างโดยผู้ช่วย HTML ของ MVC ได้อย่างไร
ASP.NET MVC สามารถสร้างองค์ประกอบ HTML ใช้ HTML ช่วยยกตัวอย่างเช่น@Html.ActionLink(), @Html.BeginForm()และอื่น ๆ ฉันรู้ว่าฉันสามารถระบุแอตทริบิวต์แบบฟอร์มโดยการสร้างวัตถุที่ไม่ระบุชื่อและส่งผ่านวัตถุนั้นสำหรับhtmlAttributesพารามิเตอร์(ที่สี่ในกรณีนี้) ที่ระบุidสำหรับองค์ประกอบ: Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"}) แต่สิ่งที่เกี่ยวกับclassคุณลักษณะหรือไม่ เห็นได้ชัดว่านี่ไม่ได้ผล: Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"}) classในฐานะที่เพิ่งโยนข้อผิดพลาดไวยากรณ์สุ่มเมื่อมุมมองของฉันมีการร้องขอเพราะคาดว่าอย่างอื่นหลังจากเผชิญหน้ากับคำหลัก C # ฉันยังลอง: new { _class = "myclass"} และ new { class_ = "myclass"} แต่พวกเขายังไม่ได้ทำงานเป็นขีดได้รับการแทนที่ด้วยรอยขีดข่วน ฉันรู้ว่าฉันสามารถเขียนองค์ประกอบ HTML ด้วยมือหรือห่อแบบฟอร์มไว้ใน a &lt;div …

10
เพิ่มไฟล์ CSS หรือ JavaScript ให้กับส่วนหัวของมุมมองจากมุมมองหรือมุมมองบางส่วน
ส่วนหัวของหน้าเลย์เอาต์: &lt;head&gt; &lt;link href="@Url.Content("~/Content/themes/base/Site.css")" rel="stylesheet" type="text/css" /&gt; &lt;/head&gt; มุมมอง (AnotherView) จากแอปพลิเคชันที่ต้องการ: &lt;link href="@Url.Content("~/Content/themes/base/AnotherPage.css")" rel="stylesheet" type="text/css" /&gt; และ AnotherView มีมุมมองบางส่วน (AnotherPartial) ซึ่งต้องการ: &lt;link href="@Url.Content("~/Content/themes/base/AnotherPartial.css")" rel="stylesheet" type="text/css" /&gt; คำถาม: เราจะเพิ่มลิงค์ไฟล์ CSS เหล่านี้ให้กับลิงค์AnotherView และ AnotherPartial ไปยังส่วนหัวของเค้าโครงได้อย่างไร? RenderSection ไม่ใช่ความคิดที่ดีเพราะ AnotherPage สามารถมีได้มากกว่าหนึ่ง Partials เพิ่ม CSS ทั้งหมดในส่วนหัวไม่มีประโยชน์เพราะจะเปลี่ยน dynamicaly (ขึ้นอยู่กับ Anotherpages)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.