将字符串作为obejects路由值传递

时间:2012-05-21 08:48:33

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

嗨我有这个视图,根据我选择的范围日期显示我在酒店的免费房间:StartDate-EndDate。  我想将“StartDate”和“EndDate”传递给CreateReservation动作以及room id作为对象路由值。  @ Html.ActionLink(“RezervaCamera”,“CreateReservation”,“Reservation”,new {RoomID = room.RoomID},“”)并且不知道如何。这是否可以将字符串作为路径对象传递。

以下是我的观点:

  @using (Html.BeginForm("SearchFree", "Reservation", FormMethod.Get))
  {
   <div class="editor-label">
   <label for="StartDate">Select Start date:
    </label>@(Html.JQueryUI().Datepicker("StartDate").MinDate(DateTime.Today).ShowButtonPanel(true).ChangeYear(true).ChangeMonth(true).NumberOfMonths(2))


     </div>
     <div class="editor-label">
      <label for="EndDate">Select End date:</label>@(Html.JQueryUI().Datepicker("EndDate").MinDate(DateTime.Today).ShowButtonPanel(true).ChangeYear(true).ChangeMonth(true).NumberOfMonths(2))


</div>

<p>
    <input type="submit" value="Search" />
</p>

  }

          <div class="styler">
             <fieldset class="ui-widget">
<legend class="ui-state-legend-default ui-corner-top ui-corner-bottom">CamereleLibere

    <ul id="album-list">
        @foreach (var album in Model)
        {
             @Html.ActionLink("RezervaCamera", "CreateReservation", "Reservation", new {RoomID= room.RoomID }, "")



                     <div style="float:left;margin-right:20px"> 
                     <img title=CameraNumarul:@album.Room_number width="75" height="75" src="@Url.Action("GetImage", "Rooms",
                     new { album.RoomID})" />

                     <span>Numarul de locuri:@album.NumberofSpots</span>




                     </a>

            </li>
        }

1 个答案:

答案 0 :(得分:0)

您似乎正在使用一些非标准的自定义Html.JQueryUI().Datepicker帮助程序。查看生成的HTML代码源。我想这个助手会生成一个文本输入:

<input type="text" name="StatrDate" ...>

请注意name属性。现在,在您的控制器操作中使用相同的名称:

[HttpPost]
pubilc ActionResult SearchFree(int roomID, DateTime startDate, DateTime endDate)
{
    ...
}

甚至更好地使用视图模型:

public class ReservationViewModel
{
    public int RoomID { get; set; }
    public DateTime StartDate { get; set; }
    public DateTime EndDate { get; set; }
}

然后:

[HttpPost]
pubilc ActionResult SearchFree(ReservationViewModel model)
{
    ...
}

另请参阅following blog post,其中讨论了在解析GET和POST请求之间的DateTime时默认模型绑定器使用的格式的差异。对于GET请求,需要以下格式:yyyy-MM-dd