剃刀无法理解ViewBag内Html.TextBoxFor

问题描述:

我使用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

应填写ViewBagcontrollerViews使用它们。

如果您在您的Index视图中使用ViewBag.Arrival视图,则应将其填入Index行动的Home控制器中。

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

现在ViewBag.Arrivaltrue如果你使用它里面Index视图。 请注意,ViewBag变量只是为了他们自己的观点而保留其价值。这意味着如果您填写ViewBag.ArrivalIndex它将在ContactUs视图中为空。

,如果你正试图从视图发回的数据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();" })