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

  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • MultiPlayStationMan

    MultiPlaySta

    17 Aralık 2009
  • Tube Time

    Tube Time

    14 Mayıs 2013