SORU
23 Mart 2009, PAZARTESİ


MVC - RedirectToAction ile Geçen Veri()

Veri MVC kullanıcı bir formda girilen alıp farklı bir görünüm göstermek istiyorum.

Bu sınıf aşağıdaki özel değişken vardır:

IList<string> _pagecontent = new List<string>();

FormCollection bir nesne kabul eder, doğrular, ve geçer aşağıdaki eylem için "Önizleme" bir Liste olarak görüntüleyin:

[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);
}

Önizleme görünümü kesinlikle yazılmış nesne Listesinde geçiş için aşağıdaki Sayfa Yönergesi vardır:

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Template.Master" Inherits="System.Web.Mvc.ViewPage<List<string>>" %>

Modeli nesne benim veri almak için kullanmak mümkün olur, ama ne yazık ki yapamam. Aşağıdaki satırda, error index out of bounds bir istisna, Endeksi negatif olmamalı ve koleksiyonun boyutundan daha küçük olması gerektiğini belirten alıyorum:

<% if (Model[0].ToString() == "0") { %>

Ve bazı garip parametreleri URL'YE eklenmiş, çözümler gibi http://localhost:1894/Admin/Preview?Capacity=4&Count=3

İki sorum var:

  1. RedirectToAction diyorum ve listeme geçerken, neden görünümün Model nesne erişilemez mi?
  2. Ne yapmaya çalışıyorum ne yapıyor hakkında gitmek için doğru yoldur, yani orada görüntülemek için bir görünüm için dizeleri koleksiyonu pass?

CEVAP
23 Mart 2009, PAZARTESİ


TempData kullanmayı deneyin. Tek atışlık bir oturum nesnesi gibi. Sen TempData içine istediğiniz değerleri koy, hemen yönlendirmek ve onları dışarı alın. İyi bir yazı var: http://blogs.teamb.com/craigstuntz/2009/01/23/37947/

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • jat4011

    jat4011

    16 EKİM 2010
  • Michael Zhang

    Michael Zhan

    8 EYLÜL 2012
  • TouchePro

    TouchePro

    27 EYLÜL 2007