0

日付で検索フィルターを作成しようとしていますが、エラーが発生します。これは私の検索方法です:

   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>}`

次のエラーが発生します。

パラメータディクショナリには、'MvcApplication4.Controllers.RoomController'のメソッド'System.Web.Mvc.ActionResult Search(System.DateTime、System.DateTime)'のnull許容型ではないタイプ'System.DateTime'のパラメータ'StartDate'のnullエントリが含まれています'。オプションパラメータは、参照型またはnull許容型であるか、オプションパラメータとして宣言されている必要があります。パラメータ名:parameters`

4

1 に答える 1

1

パラメータをURLで渡していますか?そうでない場合は、コントローラーでモデルを使用して値をフェッチすることをお勧めします。このエラーは、コントローラーがパラメーター値を取得できないために発生します。

于 2012-05-04T08:13:48.890 に答える