2017-05-21 47 views
-1

我使用MVC 5,使用此代碼我不我的控制器得到ViewBag.Arrival我得到空每次有什麼問題剃刀無法理解ViewBag內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();" }) 

它這是我家的控制器:

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

你在哪裏填寫ViewBag.Arrival? – Beginner

+0

我想在第一次頁面加載時從模型中填充它,然後取最後一次更改的值並將其重新放入第二次加載 – ahosam

回答

0

應填寫ViewBagcontrollerViews使用它們。

如果您在您的Index視圖中使用ViewBag.Arrival視圖,則應將其填入Index行動的Home控制器中。

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

現在ViewBag.Arrivaltrue如果你使用它裏面Index視圖。 請注意,ViewBag變量只是爲了他們自己的觀點而保留其價值。這意味着如果您填寫ViewBag.ArrivalIndex它將在ContactUs視圖中爲空。

1

,如果你正試圖從視圖發回的數據actionviewbag它不會工作,因爲它只做一個單程,所以你應該在Model.Parameters.Checkin獲得的價值,改變@value@Value利用資本V因爲剃刀不會承認小v@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();" })