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

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

4
วิธีใช้ ? : if statement ที่มี Razor และบล็อคโค้ดแบบอินไลน์
ฉันกำลังอัปเดตมุมมอง. aspx อันเก่าด้วยเอ็นจิ้นมุมมอง Razore ใหม่ ฉันมีสถานที่มากมายที่ฉันมีรหัสเช่นนี้: <span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span> เป็นการดีที่ฉันต้องการทำสิ่งนี้: <span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span> อย่างไรก็ตามมีสองปัญหาที่นี่: vote-up@{puzzle.UserVote .... ไม่ถือว่าสัญลักษณ์ @ เป็นจุดเริ่มต้นของการบล็อกรหัส @puzzle.UserVote == VoteType.Upดูที่ส่วนแรก@puzzle.UserVoteราวกับว่ามันควรจะแสดงค่าของตัวแปร ใครรู้วิธีแก้ปัญหาเหล

7
MVC 3: วิธีการที่จะทำให้มุมมองที่ไม่มีเค้าโครงหน้าของมันเมื่อโหลดผ่านอาแจ็กซ์?
ฉันกำลังเรียนรู้เกี่ยวกับการเพิ่มประสิทธิภาพแบบก้าวหน้าและฉันมีคำถามเกี่ยวกับมุมมอง AJAXifying ในโครงการ MVC 3 ของฉันฉันมีหน้าเลย์เอาต์หน้าเริ่มต้นและมุมมองธรรมดาสองมุมมอง หน้าเริ่มต้นอยู่ในรูทของโฟลเดอร์มุมมองและใช้กับมุมมองทั้งหมด มันระบุว่ามุมมองทั้งหมดควรใช้_Layout.cshtmlสำหรับหน้าเค้าโครงของพวกเขา หน้าเลย์เอาต์มีลิงก์การนำทางสองลิงก์หนึ่งรายการสำหรับแต่ละมุมมอง การเชื่อมโยงการใช้งาน@Html.ActionLink()ที่จะทำให้ตัวเองไปยังหน้า ตอนนี้ผมได้เพิ่ม jQuery และต้องการที่จะจี้เชื่อมโยงเหล่านี้และใช้อาแจ็กซ์ในการโหลดเนื้อหาของพวกเขาบนหน้าเว็บแบบไดนามิก <script type="text/javascript"> $(function () { $('#theLink').click(function () { $.ajax({ url: $(this).attr('href'), type: "GET", success: function (response) { $('#mainContent').html(response); } }); return false; }); }); </script> มีสองวิธีที่ฉันสามารถคิดทำ แต่ฉันไม่ชอบโดยเฉพาะอย่างยิ่ง: 1) ฉันสามารถนำเนื้อหาทั้งหมดของมุมมองและวางไว้ในมุมมองบางส่วนจากนั้นให้มุมมองหลักเรียกมุมมองบางส่วนเมื่อมีการแสดงผล ด้วยวิธีนี้Request.IsAjaxRequest()ในการใช้งานคอนโทรลเลอร์ฉันสามารถส่งคืนView()หรือส่งคืนข้อมูลPartialView()โดยพิจารณาว่าคำขอนั้นเป็นคำขอ Ajax หรือไม่ ฉันไม่สามารถคืนค่ามุมมองปกติไปยังคำขอ Ajax ได้เพราะจะใช้หน้าเลย์เอาต์และฉันจะได้รับสำเนาชุดที่สองของหน้าเลย์เอาต์ อย่างไรก็ตามฉันไม่ชอบสิ่งนี้เพราะมันบังคับให้ฉันสร้างมุมมองว่างเปล่าที่มีเพียงแค่@{Html.RenderPartial();}ในมุมมองสำหรับคำขอ GET …

8
StringLength vs MaxLength แอตทริบิวต์ ASP.NET MVC พร้อม Entity Framework รหัส EF ก่อน
พฤติกรรม[MaxLength]และ[StringLength]คุณลักษณะต่างกันอย่างไร เท่าที่ฉันสามารถบอกได้ (ยกเว้นว่า[MaxLength]สามารถตรวจสอบความยาวสูงสุดของอาร์เรย์) สิ่งเหล่านี้เหมือนกันและซ้ำซ้อนบ้างหรือไม่

30
ไม่พบประเภทหรือชื่อเนมสเปซ 'DbContext' [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันใหม่มากกับ ASP.NET MVC (3) และมีเวลายากในการแก้ไขข้อผิดพลาดในการสร้างใน Visual Studio: ไม่พบประเภทหรือชื่อเนมสเปซ 'DbContext' (คุณพลาดการใช้คำสั่งหรือการอ้างอิงแอสเซมบลีหรือไม่) using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace MyProjectName.Models { public class MachineModel { // name [Required] [Display(Name = "Nom de la machine")] public string Name { …

5
วิธีเพิ่มเนมสเปซพิเศษให้กับหน้ามีดโกนแทนที่จะใช้การประกาศ @ ใช้อย่างไร
มีเวทมนต์บางอย่างที่ฉันต้องใช้เพื่อรับเนมสเปซในpages/namespacesองค์ประกอบใน webconfig หรือไม่? <pages> <namespaces> <add namespace="System.Web.Mvc"/> <add namespace="System.Web.Mvc.Ajax"/> <add namespace="System.Web.Mvc.Html"/> <add namespace="System.Web.Routing"/> <add namespace="System.Web.WebPages"/> <add namespace="System.Web.Helpers"/> <add namespace="MyCustomHelpers"/> </namespaces> </pages> ด้านบนไม่ต้องการทำงาน ฉันรู้ว่าเนมสเปซนั้นใช้ได้เพราะเมื่อฉันวาง@using MyCustomHelpersที่ด้านบนของหน้ามันทำงานได้อย่างน่าอัศจรรย์ นี่คือเพื่อให้ฉันสามารถHtml.SomeFunction()ทำงานได้โดยไม่ต้องใส่@usingที่ด้านบนของทุกหน้าของฉัน

2
ทรีนิพจน์อาจไม่มีการเรียกหรือการเรียกที่ใช้อาร์กิวเมนต์ที่เป็นทางเลือก
ทรีนิพจน์อาจไม่มีการเรียกหรือการเรียกที่ใช้อาร์กิวเมนต์ที่เป็นทางเลือก return this.RedirectToAction<MerchantController>(x => x.Edit(merchantId)); ตำแหน่งที่แก้ไขมีอาร์กิวเมนต์ที่สองและไม่สามารถใช้ได้ ทำไมนี้
145 c#  asp.net-mvc-3 

6
หน้าข้อผิดพลาดที่กำหนดเองใน asp.net MVC3
ฉันกำลังพัฒนาเว็บไซต์ฐาน MVC3 และฉันกำลังมองหาวิธีแก้ไขข้อผิดพลาดและกำหนดมุมมอง Render แบบกำหนดเองสำหรับข้อผิดพลาดแต่ละประเภท ลองจินตนาการว่าฉันมีตัวควบคุม "ข้อผิดพลาด" ซึ่งการกระทำหลักของเขาคือ "ดัชนี" (หน้าข้อผิดพลาดทั่วไป) และตัวควบคุมนี้จะมีการดำเนินการอีกสองสามครั้งสำหรับข้อผิดพลาดที่อาจปรากฏต่อผู้ใช้เช่น "Handle500" หรือ "HandleActionNotFound" ดังนั้นทุกข้อผิดพลาดที่อาจเกิดขึ้นบนเว็บไซต์อาจได้รับการจัดการโดยตัวควบคุม "ข้อผิดพลาด" นี้ (ตัวอย่าง: ไม่พบ "ตัวควบคุม" หรือ "การกระทำ", 500, 404, dbException, ฯลฯ ) ฉันใช้ไฟล์ Sitemap เพื่อกำหนดเส้นทางเว็บไซต์ (ไม่ใช่เส้นทาง) คำถามนี้ตอบแล้วนี่คือคำตอบของ Gweebz วิธีสุดท้ายของฉันคือดังนี้: protected void Application_Error() { //while my project is running in debug mode if (HttpContext.Current.IsDebuggingEnabled && WebConfigurationManager.AppSettings["EnableCustomErrorPage"].Equals("false")) …

5
เหตุใดมีดโกน _layout.cshtml จึงมีขีดล่างนำในชื่อไฟล์
ในโครงการ ASP.NET MVC 3 ที่เป็นค่าเริ่มต้นไฟล์เลย์เอาต์และ cshtml บางส่วนเริ่มต้นด้วยการขีดเส้นใต้ _viewstart _Layout _LogOnPartial ทำไมการประชุมนี้และสิ่งนี้ใช้ทำอะไร? ฉันจำเป็นต้องทำตามอนุสัญญานี้หรือไม่? เฟรมเวิร์กให้ความหมายพิเศษกับ.cshtmlไฟล์ที่ขึ้นต้นด้วยขีดล่างหรือไม่?

5
RestSharp JSON การโพสต์พารามิเตอร์
ฉันกำลังพยายามโทรหา REST ขั้นพื้นฐานมากไปยัง MVC 3 API ของฉันและพารามิเตอร์ที่ฉันส่งผ่านนั้นไม่ได้ผูกกับวิธีการดำเนินการ ไคลเอนต์ var request = new RestRequest(Method.POST); request.Resource = "Api/Score"; request.RequestFormat = DataFormat.Json; request.AddBody(request.JsonSerializer.Serialize(new { A = "foo", B = "bar" })); RestResponse response = client.Execute(request); Console.WriteLine(response.Content); เซิร์ฟเวอร์ public class ScoreInputModel { public string A { get; set; } public string B { get; …

6
วิธีจัดการกับเขตเวลาอย่างหรูหรา
ฉันมีเว็บไซต์ที่โฮสต์ในเขตเวลาที่แตกต่างจากผู้ใช้ที่ใช้แอปพลิเคชัน นอกจากนี้ผู้ใช้สามารถมีเขตเวลาที่เฉพาะเจาะจง ฉันสงสัยว่าผู้ใช้และแอปพลิเคชั่น SO อื่น ๆ เข้าหาสิ่งนี้อย่างไร ส่วนที่ชัดเจนที่สุดคือภายใน DB วันที่ / เวลาจะถูกเก็บไว้ใน UTC เมื่ออยู่บนเซิร์ฟเวอร์ควรจัดการวันที่ / เวลาทั้งหมดใน UTC อย่างไรก็ตามฉันเห็นปัญหาสามข้อที่ฉันพยายามเอาชนะ: รับเวลาปัจจุบันใน UTC (แก้ไขได้อย่างง่ายดายด้วยDateTime.UtcNow) ดึงวันที่ / เวลาจากฐานข้อมูลและแสดงสิ่งเหล่านี้กับผู้ใช้ อาจมีการโทรจำนวนมากที่จะพิมพ์วันที่ในมุมมองที่ต่างกัน ฉันกำลังคิดถึงเลเยอร์บางอย่างระหว่างมุมมองและตัวควบคุมที่สามารถแก้ปัญหานี้ได้ หรือมีวิธีการขยายแบบกำหนดเองในDateTime(ดูด้านล่าง) ข้อเสียที่สำคัญคือทุกครั้งที่ใช้ datetime ในมุมมองต้องใช้วิธีการขยาย! JsonResultนอกจากนี้ยังจะเพิ่มความยากลำบากในการใช้สิ่งที่ต้องการ คุณไม่สามารถจะเรียกมันจะต้องมีการJson(myEnumerable) Json(myEnumerable.Select(transformAllDates))AutoMapper อาจช่วยในสถานการณ์นี้ได้ไหม รับอินพุตจากผู้ใช้ (Local เป็น UTC) ตัวอย่างเช่นการโพสต์แบบฟอร์มด้วยวันที่จะต้องแปลงวันที่เป็น UTC ก่อน ModelBinderสิ่งแรกที่มาถึงใจคือการสร้างที่กำหนดเอง นี่คือส่วนขยายที่ฉันคิดว่าใช้ในมุมมอง: public static class DateTimeExtensions { public static …

3
วิธีการตั้งค่าไฟล์ web.config เพื่อแสดงข้อความแสดงข้อผิดพลาด
ฉันปรับใช้แอปพลิเคชัน MVC-3 ของฉันบน windows Azure แต่ตอนนี้เมื่อฉันขอมันผ่านstaging urlมันแสดงให้เห็นฉัน(ขออภัยเกิดข้อผิดพลาดขณะประมวลผลคำขอของคุณ.) ตอนนี้ฉันต้องการที่จะเห็นข้อความแสดงข้อผิดพลาดโดยค่าเริ่มต้นมันซ่อนตัวอยู่เพราะเหตุผลด้านความปลอดภัย ฉันรู้ว่าเราสามารถทำได้ผ่านไฟล์ web.config แต่อย่างไร

8
เปลี่ยนเส้นทางจากแอตทริบิวต์ตัวกรองการกระทำ
เป็นวิธีที่ดีที่สุดในการเปลี่ยนเส้นทางในActionFilterAttributeอะไร ฉันได้รับการActionFilterAttributeเรียกIsAuthenticatedAttributeFilterและตรวจสอบค่าของตัวแปรเซสชัน หากตัวแปรเป็นเท็จฉันต้องการให้แอปพลิเคชันเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ ฉันต้องการเปลี่ยนเส้นทางโดยใช้ชื่อเส้นทางSystemLoginอย่างไรก็ตามวิธีการเปลี่ยนเส้นทางใด ๆ ณ จุดนี้จะใช้ได้

16
ปิดใช้งานแอตทริบิวต์การตรวจสอบที่จำเป็นภายใต้สถานการณ์บางอย่าง
ฉันสงสัยว่ามันเป็นไปได้ที่จะปิดการใช้งานแอตทริบิวต์การตรวจสอบที่จำเป็นในการดำเนินการควบคุมบางอย่าง ฉันสงสัยว่าสิ่งนี้เพราะในหนึ่งในรูปแบบการแก้ไขของฉันฉันไม่ต้องการให้ผู้ใช้ป้อนค่าสำหรับเขตข้อมูลที่พวกเขาได้ระบุไว้ก่อนหน้านี้ อย่างไรก็ตามฉันใช้ตรรกะว่าเมื่อพวกเขาป้อนค่ามันใช้ตรรกะพิเศษบางอย่างเพื่อปรับปรุงแบบจำลองเช่นการแปลงค่าเป็นต้น มีปัญหาเกี่ยวกับวิธีแก้ไขปัญหานี้หรือไม่? แก้ไข: และใช่การตรวจสอบลูกค้าเป็นปัญหาที่นี่เพราะมันจะไม่อนุญาตให้พวกเขาส่งแบบฟอร์มโดยไม่ต้องป้อนค่า

4
ข้อ จำกัด ประเภทหลายวิธีทั่วไป (OR)
เมื่ออ่านสิ่งนี้ฉันได้เรียนรู้ว่าเป็นไปได้ที่จะอนุญาตให้วิธีการยอมรับพารามิเตอร์หลายประเภทโดยทำให้เป็นวิธีการทั่วไป ในตัวอย่างรหัสต่อไปนี้ใช้กับข้อ จำกัด ประเภทเพื่อให้แน่ใจว่า "U" เป็นIEnumerable<T>ไฟล์. public T DoSomething<U, T>(U arg) where U : IEnumerable<T> { return arg.First(); } ฉันพบรหัสเพิ่มเติมที่อนุญาตให้เพิ่มข้อ จำกัด หลายประเภทเช่น: public void test<T>(string a, T arg) where T: ParentClass, ChildClass { //do something } แต่รหัสนี้จะปรากฏขึ้นเพื่อบังคับว่าargต้องมีทั้งชนิดของและParentClass ChildClassสิ่งที่ฉันต้องการทำคือบอกว่า arg อาจเป็นประเภทหนึ่งParentClass หรือ ChildClassในลักษณะต่อไปนี้: public void test<T>(string a, T arg) where T: …
136 c#  asp.net-mvc-3  types 

5
ASP.NET: ไม่สามารถเรียกวิธีนี้ได้ในระหว่างขั้นตอนการเริ่มต้นก่อนเริ่มของแอปพลิเคชัน
ฉันกำลังพยายามทำให้ไซต์ ASP.NET MVC 3 ทำงานบน IIS 6.0 ขณะนี้เมื่อฉันขอเพจจากเซิร์ฟเวอร์มันให้ข้อผิดพลาดต่อไปนี้: ข้อความแสดงข้อผิดพลาดของโปรแกรมแยกวิเคราะห์: ไม่สามารถเรียกวิธีนี้ได้ในระหว่างขั้นตอนการเริ่มต้นก่อนเริ่มของแอปพลิเคชัน ในบรรทัดนี้: <add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/> ฉันนิ่งงันและไม่มีเงื่อนงำเกี่ยวกับวงจรชีวิตของแอปพลิเคชัน ASP.NET มากนักนับประสาความแตกต่างระหว่าง 6.0 และ 7.0 การอ่านผ่านหน้า MSDN ดูเหมือนจะไม่ช่วยอะไรมากนัก ใครมีข้อมูลเชิงลึกหรือลิงค์ที่ดีสำหรับการตรวจสอบ? :)

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