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

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


6
MVC Razor ดูแบบจำลองของ foreach ที่ซ้อนกัน
ลองนึกภาพสถานการณ์ทั่วไปนี่เป็นเวอร์ชันที่ง่ายกว่าของสิ่งที่ฉันเจอ ที่จริงฉันมีสองชั้นที่ทำรังอยู่บนของฉัน .... แต่นี่คือสถานการณ์ ชุดรูปแบบประกอบด้วยประเภทรายการประกอบด้วย List Product มีรายการ ตัวควบคุมของฉันมีธีมที่ได้รับการเติมเต็มพร้อมด้วยหมวดหมู่ทั้งหมดสำหรับธีมนั้นผลิตภัณฑ์ในหมวดหมู่นี้และคำสั่งซื้อของพวกเขา คอลเลกชันคำสั่งซื้อมีคุณสมบัติที่เรียกว่า Quantity (ท่ามกลางอื่น ๆ อีกมากมาย) ที่ต้องแก้ไขได้ @model ViewModels.MyViewModels.Theme @Html.LabelFor(Model.Theme.name) @foreach (var category in Model.Theme) { @Html.LabelFor(category.name) @foreach(var product in theme.Products) { @Html.LabelFor(product.name) @foreach(var order in product.Orders) { @Html.TextBoxFor(order.Quantity) @Html.TextAreaFor(order.Note) @Html.EditorFor(order.DateRequestedDeliveryFor) } } } ถ้าฉันใช้แลมด้าแทนดูเหมือนว่าฉันจะได้รับการอ้างอิงไปยังวัตถุโมเดลด้านบนเท่านั้น "ธีม" ไม่ใช่สิ่งที่อยู่ในลูป foreach สิ่งที่ฉันพยายามทำนั้นเป็นไปได้หรือไม่หรือฉันประเมินค่าเกินหรือเข้าใจผิดว่าเป็นไปได้หรือไม่ จากข้างต้นฉันได้รับข้อผิดพลาดใน TextboxFor, EditorFor …

5
มีดโกน: @ Html.Partial () กับ @RenderPage ()
อะไรคือวิธีที่เหมาะสมในการแสดงเทมเพลตลูก และอะไรคือความแตกต่าง? ทั้งสองดูเหมือนจะทำงานให้ฉัน และทำไมไม่@Html.RenderPartial()ทำงานอีกต่อไป?


2
การแก้ไขสตริงในมุมมองมีดโกน?
สิ่งนี้รองรับหรือไม่ ถ้าเป็นเช่นนั้นมีเคล็ดลับในการเปิดใช้งานหรือไม่? ฉันสมมติว่า Razor ไม่ได้ใช้คอมไพเลอร์ใหม่เพียงพอ ... ? VS2015 IDE ดูเหมือนจะใช้ได้ แต่ในขณะรันไทม์ฉันได้รับ CS1056: อักขระที่ไม่คาดคิด '$'
93 c#  asp.net-mvc  razor  c#-6.0 

5
การอัปโหลดไฟล์ MVC 3 และการผูกโมเดล
ฉันมีการอัปโหลดแบบฟอร์มที่ใช้งานได้ แต่ฉันต้องการส่งข้อมูลโมเดลสำหรับฐานข้อมูลของฉันเพื่อบันทึกไฟล์ด้วยชื่ออื่นแน่นอน นี่คือมุมมองมีดโกนของฉัน: @model CertispecWeb.Models.Container @{ ViewBag.Title = "AddDocuments"; } <h2>AddDocuments</h2> @Model.ContainerNo @using (Html.BeginForm("Uploadfile", "Containers", FormMethod.Post, new { enctype = "multipart/form-data" })) { <input type='file' name='file' id='file' /> <input type="submit" value="submit" /> } นี่คือคอนโทรลเลอร์ของฉัน: [HttpPost] public ActionResult Uploadfile(Container containers, HttpPostedFileBase file) { if (file.ContentLength > 0) { var fileName = …

2
ใน MVC3 Razor ฉันจะรับ html ของมุมมองที่แสดงผลภายในการกระทำได้อย่างไร
มีใครทราบวิธีรับ html ที่สร้างขึ้นของมุมมองภายในการดำเนินการหรือไม่ มันเป็นแบบนี้หรือเปล่า: public ActionResult Do() { var html = RenderView("hello", model); ... }

9
asp.net-mvc: สัญลักษณ์ '@' มีดโกนในไฟล์ js
ฉันมี.csHtmlไฟล์ -razor ที่มีฟังก์ชันจาวาสคริปต์ที่ใช้@Url.Contentฟังก์ชัน C # ภายในสำหรับ URL ของ ajax ฉันต้องการย้ายฟังก์ชันนั้นไปยัง.jsไฟล์ที่อ้างอิงจากมุมมองของฉัน ปัญหาคือจาวาสคริปต์ไม่ "รู้" @สัญลักษณ์และไม่แยกวิเคราะห์รหัส C # มีวิธีอ้างอิง.jsไฟล์จากมุมมองที่มีสัญลักษณ์ "@" หรือไม่?

4
เป็นไปได้ไหมที่จะสร้างเมธอด @helper ทั่วไปด้วย Razor?
ฉันพยายามเขียนตัวช่วยใน Razor ที่มีลักษณะดังต่อไปนี้: @helper DoSomething<T, U>(Expression<Func<T, U>> expr) where T : class น่าเสียดายที่โปรแกรมแยกวิเคราะห์คิดว่านั่น<Tเป็นจุดเริ่มต้นขององค์ประกอบ HTML และฉันพบข้อผิดพลาดทางไวยากรณ์ เป็นไปได้ไหมที่จะสร้างตัวช่วยด้วย Razor ซึ่งเป็นวิธีการทั่วไป? ถ้าเป็นเช่นนั้นไวยากรณ์คืออะไร?

2
ไวยากรณ์ของ Razor มีข้อได้เปรียบที่น่าสนใจในมาร์กอัป UI หรือไม่
ผมสังเกตเห็นก็อตต์ Guthrie เริ่มที่จะพูดถึงมีดโกนยุติธรรมบิตในบล็อกของเขา แต่ผมก็ไม่แน่ใจว่าว่ามันเป็นแบบที่ดีสำหรับสไตล์ของฉัน เป็นรูปแบบที่ค่อนข้างไม่คุ้นเคยสำหรับคนที่คุ้นเคยกับมาร์กอัป ASP.Net ประเภท "มาตรฐาน" (ตัวยึดตำแหน่งเนื้อหาและโค้ดอินไลน์) แต่รู้สึกเหมือนมีหน้าเพิ่มเติมจำนวนมากในการจัดการและมาร์กอัปที่ชัดเจนสำหรับฉัน ความรู้สึกของคนอื่น ๆ เกี่ยวกับเรื่องนี้คืออะไร? เป็นสิ่งที่คุณเชื่อว่าควรได้รับการพิจารณาอย่างจริงจังเมื่อทำการนั่งร้านหน้า MVC ใหม่หรือเพียงแค่พยายามแก้ปัญหาที่ไม่มีอยู่จริง?

3
บังคับให้ทุกพื้นที่ใช้เลย์เอาต์เดียวกัน
ฉันมีโครงสร้างโครงการต่อไปนี้: / Views / Shared / _Layout; / พื้นที่ / Area1 / มุมมอง / ControllerName / ดัชนี; ... / Areas / AreaN / Views / ControllerName / Index. มีวิธีที่จะบังคับให้ทุกพื้นที่การใช้งานใด ๆ_Layoutเป็นรูปแบบฐาน ? มีวิธีใดบ้างที่จะทำได้โดยไม่ต้องเพิ่มไฟล์_ViewStart (ตัวอย่างเช่นผ่านการกำหนดค่าการกำหนดเส้นทาง) ดูสิ่งนี้ด้วย: ฉันจะระบุเลย์เอาต์ที่แตกต่างกันในไฟล์ ASP.NET MVC 3 razor ViewStart ได้อย่างไร

4
DisplayNameFor () จากรายการ <Object> ใน Model
ฉันเชื่อว่ามันค่อนข้างง่ายดูเหมือนฉันจะหาวิธีที่ถูกต้องในการแสดงชื่อที่แสดงสำหรับรายการภายในรายการภายในโมเดลของฉันไม่ได้ โมเดลที่เรียบง่ายของฉัน: public class PersonViewModel { public long ID { get; set; } private List&lt;PersonNameViewModel&gt; names = new List&lt;PersonNameViewModel&gt;(); [Display(Name = "Names")] public List&lt;PersonNameViewModel&gt; Names { get { return names; } set { names = value; } } } และชื่อ: public class PersonNameViewModel { public long ID { get; set; …
88 c#  asp.net-mvc  razor  model 


13
MVC3 มีดโกน DropDownListFor Enums
กำลังพยายามอัปเดตโครงการของฉันเป็น MVC3 สิ่งที่ฉันไม่พบ: ฉันมีประเภทข้อมูลง่ายๆของ ENUMS: public enum States() { AL,AK,AZ,...WY } ซึ่งฉันต้องการใช้เป็น DropDown / SelectList ในมุมมองของโมเดลที่มีประเภทข้อมูลนี้: public class FormModel() { public States State {get; set;} } ค่อนข้างตรงไปตรงมา: เมื่อฉันไปใช้มุมมองสร้างอัตโนมัติสำหรับคลาสบางส่วนนี้จะไม่สนใจประเภทนี้ ฉันต้องการรายการเลือกแบบง่ายที่กำหนดค่าของ enum เป็นรายการที่เลือกเมื่อฉันกดส่งและประมวลผลผ่านวิธี AJAX - JSON POST ของฉัน และมากกว่ามุมมอง (???!): &lt;div class="editor-field"&gt; @Html.DropDownListFor(model =&gt; model.State, model =&gt; model.States) &lt;/div&gt; ขอบคุณล่วงหน้าสำหรับคำแนะนำ!

2
เครื่องมือดูมีดโกน - ฉันจะเพิ่มมุมมองบางส่วนได้อย่างไร
ฉันสงสัยว่าถ้าเป็นไปได้วิธีที่ดีที่สุดในการแสดงผลบางส่วนโดยใช้เครื่องมือมุมมองมีดโกนใหม่ ฉันเข้าใจว่านี่เป็นสิ่งที่ยังไม่เสร็จสมบูรณ์ตามเวลา ตอนนี้ฉันใช้ RenderPage เพื่อแสดงการควบคุมผู้ใช้: @RenderPage("~/Views/Shared/LocaleUserControl.cshtml",ViewData.Model) เพจที่เรียกใช้ RenderPage ใช้เพจเลย์เอาต์ (ต้นแบบ) ที่มีการกำหนดสามส่วน: TitleContent, HeadContent และ Maincontent เมื่อฉันพยายามที่จะแสดงผลการควบคุมโลแคลของฉันจากหน้านี้ดูเหมือนว่าส่วนเหล่านี้จำเป็นด้วย - ควรจำเป็นในหน้าการเรียกเท่านั้นและจะปรากฏอยู่ ฉันได้รับข้อความต่อไปนี้ไม่ว่าฉันจะรวมส่วนต่างๆไว้ในมุมมองบางส่วนของฉันหรือไม่ (เห็นได้ชัดว่าฉันไม่ต้องการรวมส่วนเหล่านี้ แต่ดูเหมือนว่าจะเป็นจุดดีบักที่น่าสนใจ ... ) มีการกำหนดส่วนต่อไปนี้ แต่ยังไม่ได้แสดงผลในหน้าเค้าโครง '~ / Views / Shared / LocaleUserControl.cshtml': TitleContent; HeadContent; เนื้อหาหลัก มุมมองบางส่วนของฉันมีดังนี้ (ดัดแปลงจากลิงค์ต่อไปนี้): @inherits System.Web.Mvc.WebViewPage&lt;LocaleBaseModel&gt; @using System.Web.UI; &lt;p&gt; @Html.LabelFor(model =&gt; Model.CountryName) &lt;br /&gt; @Html.DropDownListFor(model =&gt; Model.CountryName,null, …
84 c#  asp.net-mvc  razor 

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