2016-09-08 7 views
0

Ich habe ein Szenario, für das ich Suche nach Lösung bin.So übergeben Sie das Modell von einer Aktion zu einer anderen Aktion in Sitecore MVC

Ich habe zwei .cshtml Seiten abc.cshtml und xyz.cshtml, die mit Artikel A und Punkt B zugeordnet ist.

Jetzt hat Seite abc Textbox und Schaltfläche, die Textwert an Action mit FormMethod.Post wie unten übergeben. Es wird angezeigt, wenn ich für Domain beantragen/A

Ansicht

@using (Html.BeginForm("Login", "Account", FormMethod.Post) 

{ 

@Html.TextBoxfor() 

} 

-Controller

public ActionResult About(LoginModel model) 

{ 
    List<Car> result = new List<Car>(); 

    result = service.GetResult(model.textboxvalue); //Here i am passing textbox value to method which returns list. 

    return View(); 

    // Now i want to display values in result List on xyz.cshtml i.e. on http://domain/B 
    // So how can i pass whole model (which consist of other property as well including list) to another Sitecore Item i.e. Item B 
} 

Zusammenfassung:

  1. Der Benutzer wird die URL domain/A, füllen Sie das Textfeld und klicken Sie auf die Schaltfläche.
  2. Back-End füllt das Modell. Danach möchte ich auf Domäne/B mit gefülltem Modell umleiten, um diese Werte zu zeigen.

Ich habe folgenden Link genannt:

https://mhwelander.net/2014/05/22/passing-data-between-actions-in-sitecore-mvc/

die sagt wie Just in regelmäßigen ASP.NET MVC, Sie nicht komplexe Typen passieren kann - wie komplette Modelle - zwischen Aktionen. und es scheint wahr, da Sitecore MVC Ausführungspipeline von ASP.NET MVC unterscheidet. Auch ich habe es versucht aber noch kein Glück.

Kann mir jemand dabei helfen?

Antwort

0

Es klingt für mich so, als ob Sie Ihr Modell nicht an eine andere Aktion weitergeben möchten. Sie möchten es zurückgeben, damit es in der Ansicht angezeigt wird?

Können Sie nicht einfach mit Ihrem Modell zur gewünschten Ansicht zurückkehren?

return View("xyz", model); 
0

Sie könnten auch versteckte Felder in dem Formular hinzufügen und Ihre Eigenschaften werden dem Benutzer POST das Formular zur Zeit gefüllt werden:

@using (Html.BeginForm("Login", "Account", FormMethod.Post) 
{ 
    @Html.HiddenFor(m => m.SomeProperty) 
    @Html.TextBoxfor() 
} 
Verwandte Themen