मेरे पास निम्नलिखित दो कार्य विधियाँ हैं (प्रश्न के लिए सरलीकृत):
[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 { uniqueUri = Request.RequestContext.RouteData.Values["uniqueUri"]});
}
}
इसलिए, यदि सत्यापन पास हो जाता है, तो मैं दूसरे पृष्ठ (पुष्टिकरण) पर पुनर्निर्देशित करता हूं।
यदि कोई त्रुटि होती है, तो मुझे उसी पृष्ठ को त्रुटि के साथ प्रदर्शित करने की आवश्यकता है।
यदि मैं करता हूं return View()
, तो त्रुटि प्रदर्शित होती है, लेकिन यदि मैं return RedirectToAction
(जैसा कि ऊपर) करता हूं , यह मॉडल त्रुटियों को खो देता है।
मैं इस मुद्दे से हैरान नहीं हूं, बस सोच रहा था कि आप लोग इसे कैसे संभालेंगे?
मैं बेशक केवल रीडायरेक्ट के बजाय उसी दृश्य को वापस कर सकता था, लेकिन मेरे पास "क्रिएट" विधि में तर्क है जो दृश्य डेटा को पॉप्युलेट करता है, जिसे मुझे डुप्लिकेट करना होगा।
कोई सुझाव?