剃刀无法理解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;
}
答
应填写ViewBag
内controller
和Views
使用它们。
如果您在您的Index
视图中使用ViewBag.Arrival
视图,则应将其填入Index
行动的Home
控制器中。
public ActionResult Index(){
ViewBag.Arrival = true;
}
现在ViewBag.Arrival
值true
如果你使用它里面Index
视图。 请注意,ViewBag
变量只是为了他们自己的观点而保留其价值。这意味着如果您填写ViewBag.Arrival
在Index
它将在ContactUs
视图中为空。
答
,如果你正试图从视图发回的数据action
与viewbag
它不会工作,因为它只做一个单程,所以你应该在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();" })
你在哪里填写ViewBag.Arrival? – Beginner
我想在第一次页面加载时从模型中填充它,然后取最后一次更改的值并将其重新放入第二次加载 – ahosam