Я работаю над Системой управления отелем для моего школьного проекта в моем ASP. NET классе.
В моей панели администратора я реализую возможность создания нового бронирования; отделить от ранее существовавшего набора форм стороны publi c.
В форме у меня есть несколько полей, включая поля для дат заезда и выезда и DropDownList для типов номеров. Идея формы заключается в том, что система автоматически выбирает свободную комнату на основе критериев (например, 2 двуспальные кровати предоставляются с 18 по 22 мая).
Я бы хотел, чтобы DropDownList автоматически настраивался на доступные типы номеров на основе двух дат; поэтому в DropDownList отображаются только типы комнат, которые доступны в этот период времени.
Из небольшого чтения, которое я делал, я обнаружил, что AJAX и JQuery могут выполнить sh эта задача. Однако я не очень хорошо разбираюсь в JQuery, так как мои Javascript классы были чрезвычайно просты и не делали ничего, кроме доступа к документу и чтения файла XML.
Я мог бы просто создайте одну форму, которая принимает даты, затем передает ее в модель другого действия, где я могу затем использовать эти даты в запросе, но я надеялся избежать любых огромных комбинаций форм.
Не могли бы вы, ребята, указать я в правильном направлении по этому вопросу?
Вот моя текущая форма:
@model ReserveIt.Models.Reservation
@{
ViewBag.Title = "Create";
Layout = "~/Views/Shared/_AdminMasterLayout.cshtml";
}
<script type="text/javascript">
</script>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Reservation</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
@Html.HiddenFor(model => model.RoomID)
<div class="form-group">
@Html.LabelFor(model => model.UserID, "UserID", htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.UserID, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CheckIn, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CheckIn, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CheckIn, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.StayLength, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.StayLength, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.StayLength, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.CheckOut, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.CheckOut, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.CheckOut, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.NightlyRate, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.NightlyRate, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.NightlyRate, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
<script src="~/Scripts/jquery-3.4.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
Вот мой класс сущностей:
public partial class Reservation
{
public int ReservationID { get; set; }
public Nullable<int> UserID { get; set; }
public Nullable<int> RoomID { get; set; }
public System.DateTime CheckIn { get; set; }
public Nullable<int> StayLength { get; set; }
public System.DateTime CheckOut { get; set; }
public Nullable<decimal> NightlyRate { get; set; }
public virtual Room Room { get; set; }
public virtual User User { get; set; }
}
Вот метаданные I использовать с моим классом Entity:
public class ReservationMetadata
{
public int ReservationID { get; set; }
public Nullable<int> UserID { get; set; }
public Nullable<int> RoomID { get; set; }
[Required(ErrorMessage = "Please specify a check in date")]
[Display(Name = "Check In Date")]
[DataType(DataType.Date)]
public System.DateTime CheckIn { get; set; }
[Display(Name = "Length of Stay")]
public Nullable<int> StayLength { get; set; }
[Required(ErrorMessage = "Please specify a check out date")]
[Display(Name = "Check Out Date")]
[DataType(DataType.Date)]
public System.DateTime CheckOut { get; set; }
[Display(Name = "Nightly Rate")]
[DataType(DataType.Currency)]
public Nullable<decimal> NightlyRate { get; set; }
}