嗨我有这个视图,根据我选择的范围日期显示我在酒店的免费房间: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>
}
答案 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
。