Razor无法理解Html.TextBoxFor中的ViewBag

时间:2017-05-21 14:51:55

标签: asp.net asp.net-mvc razor asp.net-mvc-5

我正在使用mvc 5,使用此代码我在控制器中没有得到ViewBag.Arrival我每次都得到它Null有什么问题

  @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;
    }

2 个答案:

答案 0 :(得分:1)

如果您尝试将视图中的数据发送回action viewbag,它将无法正常工作,因为它只执行一次旅行,因此您应该获取Model.Parameters.Checkin中的值并更改{ {1}} @value使用大写@Value,因为剃刀不会识别小V v

@value

答案 1 :(得分:0)

您应该在ViewBag内填写controller并在Views中使用它们。

如果您在ViewBag.Arrival视图中使用Index,则应在Index控制器的Home操作内填写。

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

如果您在ViewBag.Arrival视图中使用true,则Index值为ViewBag。 请注意,ViewBag.Arrival变量仅为其自己的视图保留其值。这意味着如果您在Index中填写ContactUs,则::operator new(size_t)视图中的::operator new(size_t)将为空。