2017-05-21 5 views
-1

ich verwende mvc 5, diesen Code verwenden ich ViewBag.Arrival in meinem Controller dont bekomme ich es mit Null jedes Mal bekommen, was das Problem ist,Razor kann nicht verstehen, ViewBag innerhalb Html.TextBoxFor

@Html.TextBoxFor(Model => Model.Parameters.Checkin, "{0:dd-MM-yyyy}", new {  @class = "calendarr font", @id = "Arrival", @name = "Arrival", @value = (String)ViewBag.Arrival, @readonly = "readonly", @onchange = "changedDate();" }) 

dies ist meine Heimat Controller:

if (ViewBag.Arrival == true) 
    { 
     mySessionObject.Parameters.Checkin = ViewBag.Arrival; 
     mySessionObject.Parameters.Checkout = ViewBag.Departure; 
    } 
+0

Wo füllen Sie ViewBag.Arrival? – Beginner

+0

ich möchte es vom Modell beim ersten Laden der Seite füllen, dann den letzten geänderten Wert nehmen und ihn erneut in die zweite Ladung legen – ahosam

Antwort

0

Sie sollten ViewBag innen controller füllen und sie in Views verwenden.

Wenn Sie ViewBag.Arrival in Ihrer Index Ansicht verwenden, sollten Sie es innerhalb Index Aktion von Home Controller füllen.

public ActionResult Index(){ 
    ViewBag.Arrival = true; 
} 

Jetzt ViewBag.Arrival Wert ist true, wenn Sie es in Index Ansicht verwenden. Beachten Sie, dass ViewBag Variablen ihren Wert nur für ihre eigenen Ansichten behalten. Das heißt, wenn Sie ViewBag.Arrival in Index füllen, wird es Null in ContactUs View.

1

wenn Sie versuchen, mit viewbag-action aus Sicht Daten zurück zu senden, es wird nicht funktionieren, weil es nur einen Weg Reise tut, so dass Sie den Wert in Model.Parameters.Checkin und @value-@Value Verwendung ändern V Kapital bekommen sollten, weil Rasiermesser wird nicht klein v erkennen @value

@Html.TextBoxFor(Model => Model.Parameters.Checkin, "{0:dd-MM-yyyy}", new {@class = "calendarr font", @id = "Arrival", @name = "Arrival", @Value = (String)ViewBag.Arrival, @readonly = "readonly", @onchange = "changedDate();" })