के साथ डेटा पास करना मैं एक एमवीसी उपयोगकर्ता फॉर्म में दर्ज डेटा लेना चाहता हूं और इसे एक अलग दृश्य में प्रदर्शित करना चाहता हूं।एमवीसी - रीडायरेक्ट टॉक्शन()
वर्ग निम्नलिखित निजी चर है:
IList<string> _pagecontent = new List<string>();
निम्नलिखित कार्रवाई एक FormCollection वस्तु स्वीकार करता है, यह सत्यापित करता है, और "पूर्वावलोकन" एक सूची के रूप में देखने के लिए उस पर से गुजरता है:
[Authorize(Roles = "Admins")]
[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult UpdateContent(FormCollection collection)
{
if (ModelState.IsValid)
{
string PageToInsert = collection["PageToInsert"];
string PageHeader = collection["PageHeader"];
string PageBody = collection["PageBody"];
//validate, excluded...
_pagecontent.Add(PageToInsert);
_pagecontent.Add(PageHeader);
_pagecontent.Add(PageBody);
}
return RedirectToAction("Preview", _pagecontent);
}
पूर्वावलोकन दृश्य में दृढ़ता से टाइप की गई वस्तु को पारित करने के लिए निम्न पृष्ठ निर्देश है सूची:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Template.Master" Inherits="System.Web.Mvc.ViewPage<List<string>>" %>
मैं अपने डेटा प्राप्त करने के लिए मॉडल ऑब्जेक्ट का उपयोग करने में सक्षम होने की उम्मीद करता हूं, लेकिन मैं नहीं कर सकता।
<% if (Model[0].ToString() == "0") { %>
और कुछ अजीब पैरामीटर URL में जोड़ दिया गया है, के रूप में यह करने के लिए हल करता है: निम्न पंक्ति में, मैं एक error index out of bounds
अपवाद, सूचकांक बताते हुए गैर नकारात्मक और संग्रह के आकार से कम होना चाहिए मिल
- जब मैं RedirectToAction फोन और यह मेरी सूची गुजरती हैं, कारण है कि यह दृश्य के मॉडल वस्तु में पहुंचा नहीं जा सकता:
http://localhost:1894/Admin/Preview?Capacity=4&Count=3
तो मैं दो प्रश्न हैं?
- मैं जो करने की कोशिश कर रहा हूं, उसके बारे में जाने का उचित तरीका क्या है, अर्थात् वहाँ प्रदर्शन के लिए स्ट्रिंग का संग्रह पास करें?
मैंने व्यूडेटा को आजमाया लेकिन इसे काम नहीं कर सका। TempData के साथ ही, लेकिन मैंने कल रात बिस्तर से पहले इसे एक संक्षिप्त जाना दिया। सबसे बड़ी बात यह है कि, मैं वास्तव में इन शब्दकोशों से बचना चाहता हूं और दृढ़ता से टाइप किए गए व्यू मॉडल ऑब्जेक्ट – splatto
हाँ का उपयोग करना चाहता हूं, लेकिन आपका व्यू मॉडल ऑब्जेक्ट - जो कि HTTP 302 पर दृढ़ता से टाइप नहीं किया जा रहा है। आप मॉडल को टेम्पपडाटा में चिपका सकते हैं और इसे बाहर निकाल दिया। (ईमानदारी से, मुझे एएसपी.नेट एमवीसी का उपयोग करते समय टाइपिंग पर आधा छोड़ना आसान लगता है, क्योंकि यह बस इसे अच्छी तरह से नहीं करता है।) – MichaelGG