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

ASP.NET MVC Framework เป็นเฟรมเวิร์กแอปพลิเคชันเว็บแบบโอเพนซอร์ซและเครื่องมือที่ใช้โมเดลของโมเดล model-view-controller (MVC) ที่ปรับให้เหมาะกับเว็บแอ็พพลิเคชันและสร้างบนพื้นฐานเทคโนโลยี ASP.NET


4
อะไรทำไมหรือเมื่อใดจึงควรเลือก cshtml vs aspx
ฉันต้องการทราบว่าอะไรทำไมหรือเมื่อใดจึงดีกว่าที่จะเลือก cshtml และอะไรทำไมหรือเมื่อใดจึงดีกว่าที่จะเลือกเทคโนโลยี aspx เทคโนโลยีทั้งสองนี้มีไว้เพื่ออะไร? ขอบคุณ,


10
ASP.NET MVC จัดการข้อผิดพลาดแบบกำหนดเอง Application_Error Global.asax?
ฉันมีรหัสพื้นฐานเพื่อระบุข้อผิดพลาดในแอปพลิเคชัน MVC ของฉัน ขณะนี้อยู่ในโครงการของฉันฉันมีตัวควบคุมที่เรียกว่าErrorด้วยวิธีการดำเนินการHTTPError404(), และHTTPError500() พวกเขาทุกคนยอมรับพารามิเตอร์สตริงGeneral() errorการใช้หรือแก้ไขโค้ดด้านล่าง อะไรคือวิธีที่ดีที่สุด / เหมาะสมในการส่งข้อมูลไปยังตัวควบคุมข้อผิดพลาดเพื่อประมวลผล ฉันต้องการวิธีแก้ปัญหาที่แข็งแกร่งที่สุด protected void Application_Error(object sender, EventArgs e) { Exception exception = Server.GetLastError(); Response.Clear(); HttpException httpException = exception as HttpException; if (httpException != null) { RouteData routeData = new RouteData(); routeData.Values.Add("controller", "Error"); switch (httpException.GetHttpCode()) { case 404: // page not found …

7
ใช้ getJSON ส่งข้อมูลด้วยวิธีโพสต์ยังไง?
ฉันใช้วิธีการด้านบนและทำงานได้ดีกับพารามิเตอร์หนึ่งใน URL เช่นStudents/getstud/1เมื่อใช้รูปแบบคอนโทรลเลอร์ / การกระทำ / พารามิเตอร์ ตอนนี้ฉันมีการดำเนินการในตัวควบคุมนักเรียนที่ยอมรับสองพารามิเตอร์และส่งคืนออบเจ็กต์ JSON ฉันจะโพสต์ข้อมูล$.getJSON()โดยใช้วิธีโพสต์ได้อย่างไร? วิธีการที่คล้ายกันยังเป็นที่ยอมรับ ประเด็นคือการเรียกการกระทำของคอนโทรลเลอร์ด้วย AJAX

5
Vue.js ได้รับตัวเลือกที่เลือกใน @change
ก่อนอื่นฉันอยากจะบอกว่าฉันยังใหม่กับ Vue และนี่เป็นโครงการแรกของฉันที่เคยใช้ Vue ฉันมีคอมโบบ็อกซ์และฉันต้องการทำอะไรบางอย่างที่แตกต่างจากคอมโบบ็อกซ์ที่เลือก ฉันใช้ไฟล์ vue.html และ typescript แยกกัน นี่คือรหัสของฉัน <select name="LeaveType" @change="onChange()" class="form-control"> <option value="1">Annual Leave/ Off-Day</option> <option value="2">On Demand Leave</option> </select> และนี่คือไฟล์ ts ของฉัน onChange(value) { console.log(value); } วิธีรับค่าตัวเลือกที่เลือกในฟังก์ชัน typescript ของฉัน ขอบคุณ.

5
อัปเดตความสัมพันธ์เมื่อบันทึกการเปลี่ยนแปลงของออบเจ็กต์ EF4 POCO
Entity Framework 4, วัตถุ POCO และ ASP.Net MVC2 ฉันมีความสัมพันธ์แบบหลายต่อหลายคนสมมติว่าระหว่างบล็อกโพสต์และเอนทิตีแท็ก ซึ่งหมายความว่าใน T4 ของฉันสร้างคลาส POCO BlogPost ฉันมี: public virtual ICollection<Tag> Tags { // getter and setter with the magic FixupCollection } private ICollection<Tag> _tags; ฉันขอ BlogPost และแท็กที่เกี่ยวข้องจากอินสแตนซ์ของ ObjectContext และส่งไปยังเลเยอร์อื่น (ดูในแอปพลิเคชัน MVC) ต่อมาฉันจะกลับ BlogPost ที่อัปเดตพร้อมคุณสมบัติที่เปลี่ยนแปลงและความสัมพันธ์ที่เปลี่ยนไป ตัวอย่างเช่นมีแท็ก "A" "B" และ "C" และแท็กใหม่คือ "C" และ …

5
asp.net mvc ใส่คอนโทรลเลอร์ลงในโปรเจ็กต์แยกต่างหาก
ฉันเพิ่งเรียนรู้ asp.net mvc และฉันกำลังพยายามหาวิธีย้ายคอนโทรลเลอร์ไปไว้ในโปรเจ็กต์แยกต่างหาก โดยปกติเมื่อฉันเคยออกแบบเว็บแอป asp.net มาก่อนฉันได้สร้างโปรเจ็กต์หนึ่งสำหรับโมเดลของฉันอีกโปรเจ็กต์สำหรับตรรกะของฉันจากนั้นก็มีเว็บ ตอนนี้ฉันกำลังเรียนรู้ asp.net mvc ฉันหวังว่าจะทำตามรูปแบบที่คล้ายกันและวางโมเดลและคอนโทรลเลอร์แต่ละตัวไว้ในโปรเจ็กต์แยกกันของตัวเองและปล่อยมุมมอง / สคริปต์ / css ไว้ในเว็บ ส่วนของโมเดลนั้นง่าย แต่สิ่งที่ฉันไม่เข้าใจคือการทำให้คอนโทรลเลอร์ของฉันในโปรเจ็กต์แยกเป็น "พบ" ได้อย่างไร นอกจากนี้ฉันต้องการทราบว่าสิ่งนี้แนะนำได้หรือไม่ ขอบคุณ!
107 asp.net-mvc 

14
Asp.NET Web API - 405 - กริยา HTTP ที่ใช้ในการเข้าถึงเพจนี้ไม่ได้รับอนุญาต - วิธีตั้งค่าการแมปตัวจัดการ
ฉันเขียนบริการ REST โดยใช้ ASP.NET Web API ฉันพยายามส่งคำขอ HttpDelete แต่ได้รับข้อผิดพลาดต่อไปนี้: 405 - ไม่อนุญาตให้ใช้คำกริยา HTTP ที่ใช้ในการเข้าถึงเพจนี้ ฉันคิดว่าฉันใกล้จะแก้ปัญหาแล้วฉันพบว่าฉันควรเปิดใช้งานการจัดการระยะไกลของ IIS ไปที่ส่วน Handler Mappings และเพิ่มคำกริยา DELETE ในตำแหน่งที่เหมาะสม ... แต่ปัญหาคือมีตำแหน่งที่แตกต่างกันมากมาย รายการ ... (เช่นที่นี่: http://www.somacon.com/p126.php ) ฉันควรแก้ไขข้อใด ไม่กี่คนที่ไม่มีส่วนขยายเช่น "ExtensionUrlHandler-Integrated-4.0" และฉันเพิ่มคำกริยา DELETE เข้าไป แต่ก็ยังใช้ไม่ได้ ... มันเป็นเพียงการถ่ายภาพในที่มืดเพื่อแก้ไขภาพนั้นดังนั้นฉันควรปรับเปลี่ยนตำแหน่งอื่นหรือไม่ ถ้าเป็นเช่นนั้นอันไหน? หรืออาจจะมีอะไรมากกว่านั้นที่ฉันควรทำ? บริการเว็บเดียวกันทำงานได้ดีอย่างสมบูรณ์กับบริการในพื้นที่ของฉันดังนั้นฉันคิดว่าปัญหาเกิดจาก IIS ระยะไกล ... ทักทาย

8
ASP.NET Web API: วิธีที่ถูกต้องในการส่งคืนการตอบกลับ 401 / ไม่ได้รับอนุญาต
ฉันมีเว็บไซต์ MVC ที่ใช้การตรวจสอบสิทธิ์ OAuth / โทเค็นเพื่อตรวจสอบสิทธิ์คำขอ ตัวควบคุมที่เกี่ยวข้องทั้งหมดมีคุณสมบัติที่ถูกต้องและการตรวจสอบความถูกต้องก็ใช้ได้ ปัญหาคือไม่ใช่ทุกคำขอที่สามารถได้รับอนุญาตในขอบเขตของแอตทริบิวต์ - การตรวจสอบการอนุญาตบางอย่างจะต้องดำเนินการในรหัสที่เรียกโดยวิธีการควบคุม - วิธีที่ถูกต้องในการส่งคืนการตอบกลับที่ไม่ได้รับอนุญาต 401 ในกรณีนี้คืออะไร? ฉันได้ลองthrow new HttpException(401, "Unauthorized access");แล้ว แต่เมื่อฉันทำสิ่งนี้รหัสสถานะการตอบกลับคือ 500 และฉันก็ได้รับสแต็กแทร็กด้วย แม้แต่ใน DelegatingHandler ในการบันทึกของเราเราจะเห็นว่าการตอบสนองคือ 500 ไม่ใช่ 401

4
วิธีตั้งค่า Default Controller ใน asp.net MVC 4 & MVC 5
ฉันจะตั้งค่า Default Controller สำหรับโปรเจ็กต์ASP.NET MVC 4 โดยไม่ต้องสร้างHomeController ได้อย่างไร ฉันควรตั้งค่าพื้นที่เริ่มต้นอย่างไรเมื่อแอปพลิเคชันเริ่มทำงาน

4
Html.HiddenFor ทำอะไร?
แม้ว่าฉันจะอ่านเอกสารเกี่ยวกับ Html.HiddenFor แต่ฉันไม่เข้าใจว่ามันใช้สำหรับอะไร ... ใครช่วยอธิบายการใช้งานและยกตัวอย่างสั้น ๆ ได้ไหม ตัวช่วยเหล่านั้นควรอยู่ที่ไหนในรหัส?

9
ตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์มีข้อผิดพลาดตัวสร้างสาธารณะแบบไม่มีพารามิเตอร์
ฉันได้ทำตามบทช่วยสอนนี้ซึ่งใช้งานได้ดีจนกระทั่งฉันแก้ไขDbContextให้มีตัวสร้างเพิ่มเติม ตอนนี้ฉันมีปัญหากับการแก้ปัญหาและไม่แน่ใจว่าจะต้องทำอย่างไรเพื่อแก้ไขปัญหานี้ มีวิธีง่ายๆในการบังคับให้คว้าตัวสร้างแบบไม่มีพารามิเตอร์หรือฉันเข้าใกล้สิ่งนี้ไม่ถูกต้อง? DbContext ด้วยตัวสร้างสองตัว: public class DashboardDbContext : DbContext { public DashboardDbContext() : base("DefaultConnection") { } public DashboardDbContext(DbConnection dbConnection, bool owns) : base(dbConnection, owns) { } } SiteController ตัวสร้าง: private readonly IDashboardRepository _repo; public SiteController(IDashboardRepository repo) { _repo = repo; } ที่เก็บ: DashboardDbContext _context; public DashboardRepository(DashboardDbContext context) { _context …

10
ฉันสามารถระบุตำแหน่งที่กำหนดเองเพื่อ "ค้นหามุมมอง" ใน ASP.NET MVC ได้หรือไม่
ฉันมีเค้าโครงต่อไปนี้สำหรับโครงการ mvc ของฉัน: / ตัวควบคุม /การสาธิต / สาธิต / DemoArea1Controller / สาธิต / DemoArea2Controller ฯลฯ ... / ชม /การสาธิต /Demo/DemoArea1/Index.aspx /Demo/DemoArea2/Index.aspx อย่างไรก็ตามเมื่อฉันมีสิ่งนี้สำหรับDemoArea1Controller: public class DemoArea1Controller : Controller { public ActionResult Index() { return View(); } } ฉันได้รับข้อผิดพลาด "The view" index "หรือไม่พบต้นแบบ" พร้อมตำแหน่งการค้นหาตามปกติ ฉันจะระบุคอนโทรลเลอร์ในการค้นหาเนมสเปซ "สาธิต" ในโฟลเดอร์ย่อยมุมมอง "สาธิต" ได้อย่างไร
105 asp.net-mvc  views 

10
ASP.NET MVC - ส่งผ่านพารามิเตอร์ไปยังคอนโทรลเลอร์
ฉันมีตัวควบคุมที่มีวิธีการดำเนินการดังนี้: public class InventoryController : Controller { public ActionResult ViewStockNext(int firstItem) { // Do some stuff } } และเมื่อฉันเรียกใช้ฉันได้รับข้อผิดพลาดระบุว่า: พจนานุกรมพารามิเตอร์ไม่มีค่าที่ถูกต้องของประเภท 'System.Int32' สำหรับพารามิเตอร์ 'firstItem' ในการทำให้พารามิเตอร์เป็นทางเลือกประเภทควรเป็นประเภทอ้างอิงหรือประเภท Nullable ฉันใช้งานได้ถึงจุดหนึ่งและฉันตัดสินใจลองใช้ฟังก์ชันที่ไม่มีพารามิเตอร์ เมื่อพบว่าคอนโทรลเลอร์ไม่คงอยู่ฉันใส่พารามิเตอร์กลับเข้าไปตอนนี้มันปฏิเสธที่จะรับรู้พารามิเตอร์เมื่อฉันเรียกใช้เมธอด ฉันใช้ไวยากรณ์ url นี้เพื่อเรียกการดำเนินการ: http://localhost:2316/Inventory/ViewStockNext/11 มีความคิดว่าทำไมฉันจึงได้รับข้อผิดพลาดนี้และฉันต้องทำอย่างไรเพื่อแก้ไข ฉันได้ลองเพิ่มวิธีการอื่นที่ใช้จำนวนเต็มในชั้นเรียนแล้วมันก็ล้มเหลวด้วยเหตุผลเดียวกัน ฉันได้ลองเพิ่มสตริงที่ใช้สตริงและสตริงถูกตั้งค่าเป็น null ฉันได้ลองเพิ่มพารามิเตอร์โดยไม่มีพารามิเตอร์และใช้งานได้ดี แต่แน่นอนว่ามันไม่เหมาะกับความต้องการของฉัน
105 c#  asp.net-mvc 

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