คำถามติดแท็ก asp.net-mvc-3

ASP.NET MVC 3 เป็นส่วนขยายหลักรุ่นที่สามของ Model-View-Controller สำหรับการพัฒนาเว็บแอปพลิเคชั่นใน. NET Framework


12
สองรุ่นในมุมมองเดียวใน ASP MVC 3
ฉันมี 2 รุ่น: public class Person { public int PersonID { get; set; } public string PersonName { get; set; } } public class Order { public int OrderID { get; set; } public int TotalSum { get; set; } } ฉันต้องการแก้ไขออบเจ็กต์ของทั้งสองคลาสในมุมมองเดียวดังนั้นฉันต้องการบางสิ่งเช่น: @model _try2models.Models.Person @model _try2models.Models.Order @using(Html.BeginForm()) { @Html.EditorFor(x => …

4
ไม่สามารถแปลง type void เป็น object โดยปริยายได้ .NET MVC PartialViewResult
ฉันมีการดำเนินการของคอนโทรลเลอร์ดังต่อไปนี้: [ChildActionOnly] public virtual PartialViewResult ListActions(int id) { var actions = meetingActionRepository.GetAllMeetingActions(id); return PartialView(actions); } และลิงก์การดำเนินการต่อไปนี้ (โดยใช้ t4MVC และไวยากรณ์ของมีดโกน) <p> @Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId)) </p> อย่างไรก็ตามสิ่งนี้ทำให้ฉันมีข้อผิดพลาด: ไม่สามารถแปลง type void เป็น object โดยปริยายได้ เท่าที่ฉันสามารถบอกได้ว่าการทำงานของคอนโทรลเลอร์นั้นโอเคแล้วอะไรจะทำให้ฉันมีข้อผิดพลาดนี้

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 = …

16
ไม่มีชื่อ 'ViewBag' ในบริบทปัจจุบัน
ฉันพยายามใช้ ViewBag ในแอปพลิเคชันของฉันฉันมี dlls ล่าสุดทั้งหมด MVC 3 เวอร์ชันล่าสุด แต่ฉันยังคงได้รับข้อผิดพลาด: "ชื่อ" ViewBag "ไม่มีอยู่ในบริบทปัจจุบัน" ฉันได้ถอนการติดตั้งและติดตั้ง MVC 3 ใหม่แล้ว แต่ก็ยังไม่มีการเปลี่ยนแปลง นอกจากนี้ฉันไม่เชื่อว่า dll ปรากฏใน GAC ปัญหาของฉันคืออะไร? หรือจะเพิ่ม dll ใน GAC ได้อย่างไร?

7
Ninject + MVC3 = InvalidOperationException: ลำดับไม่มีองค์ประกอบ
ฉันสร้างโครงการ MVC3 ใหม่กด F5 เห็นหน้าตัวอย่าง จากนั้นผมใช้ NuGet ที่จะได้รับการขยาย Ninject.MVC ฉันแก้ไข global.asax ของฉันตามเอกสาร Ninject วิธีการตั้งค่าแอปพลิเคชัน MVC3 : public class MvcApplication : NinjectHttpApplication { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new HandleErrorAttribute()); } public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { …

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 ซึ่งเป็นวิธีการทั่วไป? ถ้าเป็นเช่นนั้นไวยากรณ์คืออะไร?

4
เปลี่ยนเส้นทางไปยังแฮชจากคอนโทรลเลอร์โดยใช้“ RedirectToAction”
สวัสดีฉันต้องการคืนจุดยึดจาก Mvc Controller ชื่อคอนโทรลเลอร์ = DefaultController; public ActionResult MyAction(int id) { return RedirectToAction("Index", "region") } ดังนั้น url เมื่อนำไปที่ดัชนีคือ http://localhost/Default/#region ดังนั้น <a href=#region>the content should be focus here</a> ฉันไม่ได้ถามว่าคุณจะทำแบบนี้ได้ไหม: ฉันจะเพิ่ม Anchor tag ใน URL ของฉันได้อย่างไร

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

5
จะเปลี่ยนชื่อที่แสดงสำหรับ LabelFor ในมีดโกนใน mvc3 ได้อย่างไร?
ในเครื่องมือมีดโกนฉันใช้LabelForวิธีผู้ช่วยในการแสดงชื่อ แต่ดูเหมือนว่าชื่อที่แสดงจะแสดงได้ไม่ดีนัก ต้องเปลี่ยนชื่อที่แสดงต้องทำยังไง .... @Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})

6
วัตถุประสงค์ของ ActionName
ประโยชน์ของการตั้งชื่อแทนสำหรับวิธีการดำเนินการโดยใช้แอตทริบิวต์ "ActionName" คืออะไร ฉันไม่เห็นประโยชน์ของมันมากนักในการให้ผู้ใช้มีตัวเลือกในการเรียกวิธีการดำเนินการด้วยชื่ออื่น หลังจากระบุนามแฝงแล้วผู้ใช้สามารถเรียกใช้วิธีการดำเนินการได้โดยใช้นามแฝงเท่านั้น แต่ถ้าจำเป็นต้องใช้เหตุใดผู้ใช้จึงไม่เปลี่ยนชื่อของวิธีการดำเนินการแทนที่จะระบุนามแฝง ฉันจะขอบคุณมากถ้าใครสามารถให้ตัวอย่างการใช้ "ActionName" ในสถานการณ์ที่สามารถให้ประโยชน์ที่ดีเยี่ยมหรือควรใช้ให้ดีที่สุด

5
ลำดับการหลีกเลี่ยงคู่ภายใน url: โมดูลการกรองการร้องขอถูกกำหนดค่าให้ปฏิเสธคำขอที่มีลำดับการหลีกเลี่ยงคู่
ในแอปพลิเคชัน ASP.NET MVC ของฉันฉันกำลังพยายามใช้ URL ดังต่อไปนี้: / product / tags / for + family เมื่อฉันพยายามเรียกใช้แอปพลิเคชันของฉันด้วยการกำหนดค่าเริ่มต้นฉันได้รับข้อความนี้พร้อมรหัสตอบกลับ 404.11: ข้อผิดพลาด HTTP 404.11 - ไม่พบ โมดูลการกรองการร้องขอถูกกำหนดค่าให้ปฏิเสธคำขอที่มีลำดับการหลีกเลี่ยงคู่ ฉันสามารถแก้ไขข้อผิดพลาดนี้ได้โดยการติดตั้งโค้ดด้านล่างใน web.config ของฉัน: <system.webServer> <security> <requestFiltering allowDoubleEscaping="true" /> </security> </system.webServer> ตอนนี้ฉันไม่ได้รับอะไร404.11เลย สิ่งที่ฉันสงสัยคือฉันกำลังเปิดช่องโหว่ด้านความปลอดภัยประเภทใดด้วยการใช้งานนี้ BTW ใบสมัครของฉันอยู่ภายใต้การและทำงานภายใต้.Net Framework 4.0IIS 7.5

5
ฉันจะยอมรับอาร์เรย์เป็นพารามิเตอร์การดำเนินการของคอนโทรลเลอร์ ASP.NET MVC ได้อย่างไร
ฉันมีตัวควบคุม ASP.net MVC ที่เรียกDesignsว่ามีการดำเนินการพร้อมลายเซ็นต่อไปนี้: public ActionResult Multiple(int[] ids) อย่างไรก็ตามเมื่อฉันพยายามนำทางไปยังการกระทำนี้โดยใช้ url: http://localhost:54119/Designs/Multiple?ids=24041,24117 idsพารามิเตอร์เป็นโมฆะเสมอ มีวิธีใดบ้างที่จะรับ MVC เพื่อแปลง?ids=พารามิเตอร์การสืบค้น URL เป็นอาร์เรย์สำหรับการดำเนินการ ฉันเคยเห็นการพูดถึงการใช้ตัวกรองการดำเนินการ แต่เท่าที่ฉันสามารถบอกได้ว่าจะใช้ได้เฉพาะกับ POST ที่อาร์เรย์ถูกส่งผ่านในข้อมูลคำขอแทนที่จะเป็นใน URL

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