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

15
วิธีรับข้อผิดพลาดทั้งหมดจาก ASP.Net MVC modelState?
ฉันต้องการรับข้อความแสดงข้อผิดพลาดทั้งหมดจาก modelState โดยไม่ทราบถึงค่าคีย์ วนรอบเพื่อคว้าข้อความแสดงข้อผิดพลาดทั้งหมดที่ ModelState มีอยู่ ฉันจะทำสิ่งนี้ได้อย่างไร

3
ModelState.AddModelError - ฉันจะเพิ่มข้อผิดพลาดที่ไม่ได้มีไว้สำหรับทรัพย์สินได้อย่างไร
ฉันกำลังตรวจสอบฐานข้อมูลของฉันในCreate(FooViewModel fvm){...}เพื่อดูว่าfvm.prop1และfvm.prop2มีอยู่แล้วในการรวมกันที่มิ ถ้าเป็นเช่นนั้นฉันต้องการเพิ่มข้อผิดพลาดใน modelstate จากนั้นส่งคืนมุมมองทั้งหมด ฉันเหนื่อย: public ActionResult Create(FooViewModel fvm){ if (ThatComboAlreadyExists(fvm)) { ModelState.AddModelError("Model", "There is already one like that"); return View(fvm); } } ... แต่ฉันไม่พบข้อผิดพลาดในHtml.ValidationSummaryซึ่งฉันคิดว่ามันจะปรากฏขึ้น ฉันสงสัยว่า "Model" ไม่ใช่คีย์ที่ถูกต้อง แต่ฉันไม่สามารถหาอะไรได้ใน Google

13
ASP.NET MVC วิธีการแปลงข้อผิดพลาด ModelState เป็น json
คุณจะได้รับรายการข้อความแสดงข้อผิดพลาดทั้งหมดของ ModelState ได้อย่างไร? ฉันพบรหัสนี้เพื่อรับคีย์ทั้งหมด: (การส่งคืนรายการคีย์ที่มีข้อผิดพลาด ModelState ) var errorKeys = (from item in ModelState where item.Value.Errors.Any() select item.Key).ToList(); แต่ฉันจะได้รับข้อความแสดงข้อผิดพลาดเป็น IList หรือ IQueryable ได้อย่างไร ฉันสามารถไป: foreach (var key in errorKeys) { string msg = ModelState[error].Errors[0].ErrorMessage; errorList.Add(msg); } แต่นั่นคือการทำด้วยตนเอง - มีวิธีทำโดยใช้ LINQ หรือไม่? คุณสมบัติ. ErrorMessage อยู่ในห่วงโซ่มากจนฉันไม่รู้ว่าจะเขียน LINQ อย่างไร ...

8
ModelState.IsValid == false ทำไม?
ฉันจะค้นหารายการข้อผิดพลาดที่ทำให้ ModelState ไม่ถูกต้องได้ที่ไหน ฉันไม่เห็นคุณสมบัติข้อผิดพลาดใด ๆ บนวัตถุ ModelState

10
Asp.net MVC ModelState ล้าง
ใครช่วยให้คำจำกัดความสั้น ๆ เกี่ยวกับบทบาทของ ModelState ใน Asp.net MVC (หรือลิงก์ไปยังหนึ่ง) ModelState.Clear()โดยเฉพาะอย่างยิ่งผมจำเป็นต้องรู้ในสิ่งที่สถานการณ์มันเป็นสิ่งจำเป็นหรือพึงปรารถนาที่จะโทร บิตเปิดจบแล้วฮะ ... ขอโทษนะฉันคิดว่ามันอาจช่วยได้ถ้าบอกคุณว่าฉันกำลังทำอะไรอยู่: ฉันมีการดำเนินการแก้ไขในคอนโทรลเลอร์ชื่อ "เพจ" เมื่อฉันเห็นแบบฟอร์มเพื่อเปลี่ยนรายละเอียดของเพจเป็นครั้งแรกทุกอย่างโหลดได้ดี (เชื่อมโยงกับวัตถุ "MyCmsPage") จากนั้นฉันคลิกปุ่มที่สร้างค่าสำหรับฟิลด์ของวัตถุ MyCmsPage ( MyCmsPage.SeoTitle) มันสร้างดีและอัปเดตออบเจ็กต์จากนั้นฉันจะส่งคืนผลลัพธ์การดำเนินการด้วยออบเจ็กต์เพจที่แก้ไขใหม่และคาดว่ากล่องข้อความที่เกี่ยวข้อง (แสดงผลโดยใช้<%= Html.TextBox("seoTitle", page.SeoTitle)%>) จะได้รับการอัปเดต ... แต่อนิจจามันแสดงค่าจากโมเดลเก่าที่โหลด ฉันได้แก้ไขมันโดยใช้ModelState.Clear()แต่ฉันต้องการรู้ว่าทำไม / มันทำงานอย่างไรดังนั้นฉันจึงไม่ได้ทำแบบสุ่มสี่สุ่มห้า PageController: [AcceptVerbs("POST")] public ActionResult Edit(MyCmsPage page, string submitButton) { // add the seoTitle to the current page object page.GenerateSeoTitle(); …


10
ASP.NET MVC - วิธีการรักษาข้อผิดพลาด ModelState ข้าม RedirectToAction?
ฉันมีสองวิธีการดำเนินการต่อไปนี้ (ทำให้ง่ายขึ้นสำหรับคำถาม): [HttpGet] public ActionResult Create(string uniqueUri) { // get some stuff based on uniqueuri, set in ViewData. return View(); } [HttpPost] public ActionResult Create(Review review) { // validate review if (validatedOk) { return RedirectToAction("Details", new { postId = review.PostId}); } else { ModelState.AddModelError("ReviewErrors", "some error occured"); return RedirectToAction("Create", new …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.