我想按日期進行搜索過濾,但出現錯誤。 這是我的搜索方法:按日期在mvc中搜索過濾器3
public ActionResult Search(DateTime StartDate,DateTime EndDate)
{
var result = (
from r in context.Rooms
from v in context.Reservations
.Where(a =>a.Room_ID == r.RoomID
&&
!(
StartDate >= a.Data_Check_out ||
EndDate <= a.Data_Check_in
)
&& a.Cancel == false
).DefaultIfEmpty()
where v.ReservationID == null
select r
);
return View(result);
}
這裏是我的看法:
@model IEnumerable<MvcApplication4.Models.Room>
@using (Html.BeginForm("Search", "Room", FormMethod.Get))
{
@Html.TextBox("StartDate")
<input type="submit" value="Search" />
@Html.TextBox("EndDate")
<input type="submit" value="Search" /> }
@foreach (var x in Model)
{
<div class="item">
<h1>@x.Room_Type.Room_Type1</h1>
</div>}`
我得到以下錯誤:
The parameters dictionary contains a null entry for parameter 'StartDate' of non-nullable type 'System.DateTime' for method 'System.Web.Mvc.ActionResult Search(System.DateTime, System.DateTime)' in 'MvcApplication4.Controllers.RoomController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter. Parameter name: parameters`
你如何發佈到服務器?與提交按鈕或與AJAX?你應該使用'TextBoxFor'。不知道它會幫助你。 – gdoron
它看起來像是在另一個視圖中提供了該操作的鏈接,而不傳遞這兩個日期參數。檢查你的用法。 – mattytommo
您是否使用美國格式以外的日期格式MM/dd/yyyy? – pjumble