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

21
การสะท้อนชื่อพารามิเตอร์: การใช้ C # lambda หรือการใช้ไวยากรณ์ที่ไม่เหมาะสม?
ฉันกำลังดูส่วนประกอบของMvcContrib Grid และฉันก็รู้สึกทึ่ง แต่ในเวลาเดียวกันกลับกลายเป็นว่าเป็นกลอุบายที่ใช้ในไวยากรณ์ไวยากรณ์ : .Attributes(style => "width:100%") ไวยากรณ์ข้างต้นชุดแอตทริบิวต์รูปแบบของ HTML width:100%สร้างขึ้นเพื่อ ตอนนี้ถ้าคุณให้ความสนใจ 'สไตล์' ไม่ได้ระบุไว้ถูกอนุมานจากชื่อของพารามิเตอร์ในการแสดงออก! ฉันต้องขุดลงไปและพบว่ามี 'เวทมนตร์' เกิดขึ้น: Hash(params Func<object, TValue>[] hash) { foreach (var func in hash) { Add(func.Method.GetParameters()[0].Name, func(null)); } } ดังนั้นรหัสจึงใช้ชื่อทางการของพารามิเตอร์เพื่อสร้างพจนานุกรมของคู่ของค่าชื่อแอตทริบิวต์ โครงสร้างไวยากรณ์ที่ได้นั้นมีความหมายชัดเจนมาก แต่ในเวลาเดียวกันก็อันตรายมาก การใช้แลมบ์ดานิพจน์ทั่วไปช่วยให้สามารถแทนที่ชื่อที่ใช้โดยไม่มีผลข้างเคียง ผมเห็นตัวอย่างในหนังสือที่บอกว่าcollection.ForEach(book => Fire.Burn(book))ฉันรู้ว่าฉันสามารถเขียนในรหัสของฉันcollection.ForEach(log => Fire.Burn(log))และมันหมายถึงสิ่งเดียวกัน แต่ด้วยไวยากรณ์ MvcContrib Grid ที่นี่ทั้งหมดในทันทีฉันพบรหัสที่มีลักษณะและการตัดสินใจตามชื่อที่ฉันเลือกสำหรับตัวแปรของฉัน! ดังนั้นนี่คือการปฏิบัติร่วมกันกับชุมชน C # 3.5 / …

10
มุมมองบางส่วน ASP.NET MVC: คำนำหน้าชื่ออินพุต
สมมติว่าฉันมี ViewModel เช่น public class AnotherViewModel { public string Name { get; set; } } public class MyViewModel { public string Name { get; set; } public AnotherViewModel Child { get; set; } public AnotherViewModel Child2 { get; set; } } ในมุมมองฉันสามารถแสดงผลบางส่วนด้วย <% Html.RenderPartial("AnotherViewModelControl", Model.Child) %> ในบางส่วนฉันจะทำ <%= Html.TextBox("Name", Model.Name) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.