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

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

30
ตรวจพบคำขอ Request.Form ที่เป็นอันตรายจากไคลเอ็นต์
ทุกครั้งที่ผู้ใช้โพสต์สิ่งที่มี<หรือ>ในหน้าเว็บแอปพลิเคชันของฉันฉันได้รับข้อยกเว้นนี้ ฉันไม่ต้องการพูดคุยเกี่ยวกับความฉลาดของการโยนข้อยกเว้นหรือหยุดแอปพลิเคชั่นเว็บทั้งหมดเพราะมีคนป้อนอักขระในกล่องข้อความ แต่ฉันกำลังมองหาวิธีที่สง่างามในการจัดการสิ่งนี้ วางกับดักข้อยกเว้นและแสดง เกิดข้อผิดพลาดโปรดย้อนกลับไปและพิมพ์ทั้งฟอร์มของคุณอีกครั้ง แต่คราวนี้โปรดอย่าใช้ < ดูเหมือนมืออาชีพไม่พอสำหรับฉัน การปิดใช้งานการตรวจสอบความถูกต้องของโพสต์ ( validateRequest="false") จะหลีกเลี่ยงข้อผิดพลาดนี้ได้อย่างแน่นอน แต่จะทำให้หน้าเว็บมีความเสี่ยงต่อการถูกโจมตีเป็นจำนวนมาก อุดมคติ: เมื่อมีการโพสต์ย้อนกลับที่มีอักขระที่ จำกัด HTML ค่าที่โพสต์ในคอลเลกชันฟอร์มจะถูกเข้ารหัส HTML โดยอัตโนมัติ ดังนั้น.Textคุณสมบัติของกล่องข้อความของฉันจะเป็นsomething & lt; html & gt; มีวิธีที่ฉันสามารถทำได้จากตัวจัดการ?


21
ไฟล์อัพโหลด ASP.NET MVC 3.0
(คำนำ: คำถามนี้เกี่ยวกับ ASP.NET MVC 3.0 ซึ่งเปิดตัวในปี 2554ไม่ใช่เกี่ยวกับASP.NET Core 3.0ซึ่งเผยแพร่ในปี 2019) ฉันต้องการอัพโหลดไฟล์ใน asp.net mvc ฉันจะอัพโหลดไฟล์โดยใช้input fileการควบคุมhtml ได้อย่างไร

30
ไม่พบส่วนหนึ่งของเส้นทาง… bin \ roslyn \ csc.exe
ฉันพยายามเรียกใช้โครงการ Asp.net MVC ที่ดึงมาจากการควบคุมแหล่ง TFS ฉันได้เพิ่มการอ้างอิงการชุมนุมทั้งหมดและฉันสามารถสร้างและรวบรวมได้สำเร็จโดยไม่มีข้อผิดพลาดหรือคำเตือน แต่ฉันได้รับข้อผิดพลาดต่อไปนี้ในเบราว์เซอร์: ไม่พบส่วนหนึ่งของพา ธ 'C: \ B8akWorkspace \ B8akProject \ B8akSolution \ B8AK.Portal \ bin \ roslyn \ csc.exe' นี่คือภาพเต็มหน้าจอของหน้าข้อผิดพลาด หลังจากการวิจัยไม่กี่วันฉันเข้าใจว่าRoslynเป็นแพลตฟอร์มคอมไพเลอร์. Net ที่มีคุณสมบัติการรวบรวมขั้นสูง อย่างไรก็ตามฉันไม่เข้าใจว่าทำไมบิลด์ของฉันจึงพยายามหา \ bin \ roslyn \ csc.exe เพราะฉันไม่ได้กำหนดค่าอะไรที่เกี่ยวข้องกับโรสลินหรือฉันตั้งใจจะใช้โรสลินในโครงการของฉัน
811 c#  asp.net  .net  asp.net-mvc  roslyn 

30
คุณจัดการกับปุ่มส่งหลายปุ่มใน ASP.NET MVC Framework อย่างไร
มีวิธีง่ายๆในการจัดการกับปุ่มส่งหลายปุ่มจากแบบฟอร์มเดียวกันหรือไม่? ตัวอย่างเช่น: <% Html.BeginForm("MyAction", "MyController", FormMethod.Post); %> <input type="submit" value="Send" /> <input type="submit" value="Cancel" /> <% Html.EndForm(); %> ความคิดใด ๆ ที่จะทำเช่นนี้ใน ASP.NET Framework Beta? ตัวอย่างทั้งหมดที่ฉันทำมีปุ่มเพียงปุ่มเดียว

30
คุณจะสร้างรายการดร็อปดาวน์จาก enum ใน ASP.NET MVC ได้อย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : Каксоздатьвыпадающийсписокизenum'ав ASP.NET MVC? ฉันพยายามใช้Html.DropDownListวิธีการขยาย แต่ไม่สามารถหาวิธีใช้กับการแจงนับได้ สมมติว่าฉันมีการแจงนับเช่นนี้: public enum ItemTypes { Movie = 1, Game = 2, Book = 3 } ฉันจะสร้างการดร็อปดาวน์ด้วยค่าเหล่านี้โดยใช้Html.DropDownListวิธีการขยายได้อย่างไร หรือเป็นทางออกที่ดีที่สุดของฉันเพียงแค่สร้าง for loop และสร้างองค์ประกอบ Html ด้วยตนเอง
671 c#  asp.net  asp.net-mvc 

29
ฉันสามารถตั้งค่าความยาวไม่ จำกัด สำหรับ maxJsonLength ใน web.config ได้หรือไม่
ฉันกำลังใช้คุณสมบัติการเติมข้อความอัตโนมัติของ jQuery เมื่อฉันพยายามเรียกดูรายการมากกว่า 17,000 รายการ (แต่ละรายการจะมีความยาวไม่เกิน 10 ถ่าน) มันยาวเกินความเป็นจริงและเกิดข้อผิดพลาด: ข้อมูลข้อยกเว้น: ประเภทข้อยกเว้น: InvalidOperationException ข้อความข้อยกเว้น: ข้อผิดพลาดระหว่างการทำให้เป็นอนุกรมหรือการดีซีเรียลไลเซชันโดยใช้ JSON JavaScriptSerializer ความยาวของสตริงเกินกว่าค่าที่ตั้งไว้ในคุณสมบัติ maxJsonLength ฉันสามารถตั้งค่าความยาวได้ไม่ จำกัดmaxJsonLengthในweb.configหรือไม่ ถ้าไม่ความยาวสูงสุดที่ฉันสามารถตั้งได้คือเท่าไหร่

9
ASP.NET MVC - ตั้งค่า IIdentity ที่กำหนดเองหรือ IPrincipal
ฉันต้องทำสิ่งที่ค่อนข้างง่าย: ในแอปพลิเคชัน ASP.NET MVC ของฉันฉันต้องการตั้งค่า IIdentity / IPrincipal แบบกำหนดเอง แล้วแต่จำนวนใดจะง่ายกว่า / เหมาะสมกว่า ฉันต้องการที่จะขยายการเริ่มต้นเพื่อที่ฉันสามารถเรียกสิ่งที่ต้องการและUser.Identity.Id User.Identity.Roleไม่มีอะไรแฟนซีเพียงคุณสมบัติพิเศษบางอย่าง ฉันได้อ่านบทความและคำถามมากมาย แต่ฉันรู้สึกว่าฉันทำให้มันหนักกว่าที่เป็นจริง ฉันคิดว่ามันจะง่าย หากผู้ใช้เข้าสู่ระบบฉันต้องการตั้งค่า IIdentity ที่กำหนดเอง ดังนั้นฉันคิดว่าฉันจะใช้Application_PostAuthenticateRequestใน global.asax ของฉัน อย่างไรก็ตามที่เรียกว่าในทุกคำขอและฉันไม่ต้องการโทรไปยังฐานข้อมูลในทุกคำขอที่จะขอข้อมูลทั้งหมดจากฐานข้อมูลและวางในวัตถุ IPrincipal ที่กำหนดเอง ที่ดูเหมือนว่าไม่จำเป็นมากช้าและผิดที่ (ทำสายฐานข้อมูลมี) แต่ฉันอาจผิด หรือข้อมูลนั้นมาจากไหน? ดังนั้นฉันจึงคิดว่าเมื่อใดก็ตามที่ผู้ใช้ลงชื่อเข้าใช้ฉันสามารถเพิ่มตัวแปรที่จำเป็นบางอย่างในเซสชันของฉันซึ่งฉันเพิ่มลงใน IIdentity ที่กำหนดเองในApplication_PostAuthenticateRequestตัวจัดการเหตุการณ์ อย่างไรก็ตามฉันContext.Sessionอยู่ที่nullนั่นเพื่อที่จะไม่ไป ฉันทำงานนี้มาหนึ่งวันแล้วและฉันรู้สึกว่าฉันขาดอะไรไป ไม่ควรทำยากเกินไปใช่มั้ย ฉันยังสับสนกับทุกสิ่งที่เกี่ยวข้อง (กึ่ง) ที่มาพร้อมกับสิ่งนี้ MembershipProvider, MembershipUser, RoleProvider, ProfileProvider, IPrincipal, IIdentity, FormsAuthentication.... ฉันเพียงคนเดียวที่ทุกคนพบอย่างนี้ทำให้เกิดความสับสน? หากใครบางคนบอกฉันได้ว่าวิธีแก้ปัญหาที่ง่ายสง่างามและมีประสิทธิภาพในการจัดเก็บข้อมูลพิเศษบางอย่างในความเป็น II โดยไม่ต้องมีฟัซซี่พิเศษทั้งหมด …


14
RedirectToAction พร้อมพารามิเตอร์
ฉันมีผมเรียกการกระทำจากสมอ thusly, Site/Controller/Action/IDที่เป็นIDint หลังจากนั้นฉันต้องเปลี่ยนเส้นทางไปยังการกระทำเดียวกันนี้จากคอนโทรลเลอร์ มีวิธีที่ฉลาดในการทำสิ่งนี้หรือไม่? ขณะนี้ฉันกำลังIDอยู่ใน tempdata แต่เมื่อคุณกด f5 เพื่อรีเฟรชหน้าอีกครั้งหลังจากกลับไป tempdata จะหายไปและหน้าเว็บล้มเหลว

8
จะทำให้ ELMAH ทำงานร่วมกับแอตทริบิวต์ ASP.NET MVC [HandleError] ได้อย่างไร
ฉันกำลังพยายามใช้ ELMAH เพื่อบันทึกข้อผิดพลาดในแอปพลิเคชัน ASP.NET MVC ของฉันอย่างไรก็ตามเมื่อฉันใช้แอตทริบิวต์ [HandleError] บนตัวควบคุมของฉัน ELMAH จะไม่บันทึกข้อผิดพลาดเมื่อเกิดขึ้น ในขณะที่ฉันเดาเพราะ ELMAH บันทึกข้อผิดพลาดที่ไม่สามารถจัดการได้เท่านั้นและแอตทริบิวต์ [HandleError] กำลังจัดการข้อผิดพลาดดังนั้นจึงไม่จำเป็นต้องบันทึก ฉันจะแก้ไขหรือฉันจะแก้ไขแอททริบิวต์อย่างไรเพื่อให้ ELMAH รู้ว่ามีข้อผิดพลาดและเข้าสู่ระบบ .. แก้ไข:ให้ฉันแน่ใจว่าทุกคนเข้าใจฉันรู้ว่าฉันสามารถปรับเปลี่ยนแอตทริบิวต์ที่ไม่ใช่คำถามที่ฉันขอ ... ELMAH ถูกบายพาสเมื่อใช้แอตทริบิวต์ handleerror ซึ่งหมายความว่าจะไม่เห็นว่ามีข้อผิดพลาดเนื่องจากมีการจัดการ มีแอตทริบิวต์อยู่แล้ว ... สิ่งที่ฉันถามมีวิธีทำให้ ELMAH เห็นข้อผิดพลาดและบันทึกแม้ว่าแอตทริบิวต์จะจัดการกับมัน ... ฉันค้นหาไปรอบ ๆ และไม่เห็นวิธีใด ๆ ที่จะเรียกให้บังคับให้เข้าสู่ระบบ ข้อผิดพลาด....

8
รวบรวมมุมมองใน ASP.NET MVC
ฉันต้องการงาน msbuild เพื่อรวบรวมมุมมองเพื่อที่ฉันจะได้เห็นว่ามีข้อผิดพลาดในการคอมไพล์ในเวลา ... รวบรวมเวลา ความคิดใด ๆ

19
วิธีแก้ไข: ตัวจัดการ“ PageHandlerFactory-Integrated” มีโมดูล“ ManagedPipelineHandler” ที่ไม่ดีในรายการโมดูล
ฉันกำลังกำหนดค่าโครงการ MVC 3 เพื่อทำงานกับการติดตั้ง IIS ภายในและพบข้อผิดพลาด 500 ต่อไปนี้: ตัวจัดการ "PageHandlerFactory-Integrated" มีโมดูล "ManagedPipelineHandler" ที่ไม่ดีในรายการโมดูล ปรากฎว่าเป็นเพราะ ASP.Net ไม่ได้ติดตั้งอย่างสมบูรณ์กับ IIS แม้ว่าฉันจะทำเครื่องหมายในช่อง "เพิ่มคุณสมบัติ" เพื่อแก้ไขปัญหานี้ฉันเพียงแค่เรียกใช้คำสั่งต่อไปนี้ที่พร้อมท์คำสั่ง %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i ถ้าฉันใช้ระบบ 32 บิตมันก็จะเป็นดังนี้: %windir%\Microsoft.NET\Framework\v4.0.21006\aspnet_regiis.exe -i คำถามของฉันคือมีวิธีการติดตั้ง IIS บนกล่อง windows 7 เพื่อใช้. NET 4.0 (MVC 3) โดยไม่ต้องทำตามขั้นตอนพิเศษนี้หรือไม่?

10
การส่งผ่านข้อมูลไปยัง modst bootstrap
ฉันมีไฮเปอร์ลิงก์สองอันที่แต่ละอันมี ID แนบอยู่ เมื่อฉันคลิกที่ลิงค์นี้ฉันต้องการเปิด modal ( http://twitter.github.com/bootstrap/javascript.html#modals ) และส่งรหัสนี้ไปยัง modal ฉันค้นหาใน google แต่ฉันไม่พบสิ่งใดที่สามารถช่วยฉันได้ นี่คือรหัส: <a data-toggle="modal" data-id="@book.Id" title="Add this item" class="open-AddBookDialog"></a> ซึ่งควรเปิด: <div class="modal hide" id="addBookDialog"> <div class="modal-body"> <input type="hidden" name="bookId" id="bookId" value=""/> </div> </div> ด้วยรหัสชิ้นนี้: $(document).ready(function () { $(".open-AddBookDialog").click(function () { $('#bookId').val($(this).data('id')); $('#addBookDialog').modal('show'); }); }); อย่างไรก็ตามเมื่อฉันคลิกไฮเปอร์ลิงก์ไม่มีอะไรเกิดขึ้น เมื่อฉันให้ไฮเปอร์ลิงก์<a href="#addBookDialog" ...>โมดอลจะเปิดได้ดี …

30
การดีบัก / โหลด Visual Studio ช้ามาก
ฉันอยู่ที่ปลายปัญญา Visual Studio มักจะช้าในการดีบักหรือโหลดเพียงธรรมดา ("เริ่มต้นโดยไม่มีการดีบัก") ไซต์ ASP.NET MVC ของฉัน ไม่เสมอไป: ในตอนแรกโปรเจ็กต์จะโหลดดีและเร็ว แต่เมื่อโหลดช้าพวกเขาจะโหลดช้าหลังจากนั้น ฉันอาจจะรอ 1-2 นาทีหรือมากกว่านั้น การตั้งค่าของฉัน: ฉันใช้Visual Studio 2012 Expressในปัจจุบัน แต่ฉันมีปัญหาเดียวกันใน Visual Studio 2010 Express เช่นกัน โซลูชันของฉันถูกเก็บไว้ในไดรฟ์เครือข่าย โดยเฉพาะเอกสารของฉันจะถูกเปลี่ยนเส้นทางไปยังไดรฟ์เครือข่ายหากมีความสำคัญ (ไม่ควรมีบางครั้งที่เว็บไซต์ของฉันโหลดเร็วมากภายใต้การตั้งค่านี้) โดยปกติฉันโหลดใน Internet Explorer 9 แต่ปัญหาเดียวกันนี้เกิดขึ้นใน Firefox สิ่งนี้สามารถเกิดขึ้นได้ในโครงการ ASP.NET MVC ใด ๆ ที่ฉันทำงานและดูเหมือนว่าจะหมุนไปรอบ ๆ โดยใช้ DisplayTemplates ซึ่งโครงการ ASP.NET MVC ทั้งหมดของฉันทำ และมันคือ C …

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