#asp.net-mvc
Вопрос:
У меня есть следующий код на моей странице cshtml:
<div class="container">
<div class="col-md-12 text-center">
<label asp-for="StartDate"></label><br />
@using (Html.BeginForm())
{
@Html.EditorFor(model => model.StartDate, new { htmlattributes = new { @class = "datepicker" } })
}
</div>
</div>
<br />
<div class="container">
<div class="col-md-12 text-center">
<label asp-for="EndDate"></label><br />
@using (Html.BeginForm())
{
@Html.EditorFor(model => model.EndDate, new { htmlattributes = new { @class = "datepicker" } })
}
</div>
</div>
Дата начала доступна в контроллере, но дата окончания равна нулю. Если я поменяю порядок местами, дата окончания будет хорошей, а дата начала-нулевой. Итак, похоже, что так, как я это делаю, передается только первое значение. Как я могу получить оба значения?
Это определение модели:
[DataType(DataType.Date, ErrorMessage = "Date Only")]
[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "To Date")]
public DateTime EndDate { get; set; }
[DataType(DataType.Date, ErrorMessage = "Date Only")]
[DisplayFormat(DataFormatString = "{0:dd-MMM-yyyy}", ApplyFormatInEditMode = true)]
[Display(Name = "From Date")]
public DateTime StartDate { get; set; }
Я уверен, что это что-то простое, но я не могу этого понять. Заранее спасибо.
Ответ №1:
Что ж, я был прав, все было просто. Мне нужно было, чтобы обе даты были в одном Html.BeginForm().
<div class="container">
<div class="col-md-12 text-center">
@using (Html.BeginForm())
{
<label asp-for="StartDate"></label><br />
@Html.EditorFor(model => model.StartDate, new { htmlattributes = new { @class = "datepicker" } })
<br />
<label asp-for="EndDate"></label><br />
@Html.EditorFor(model => model.EndDate, new { htmlattributes = new { @class = "datepicker" } })
}
</div>
</div>