Как мне получить оба значения для двух дат html.editorfor, чтобы сделать их доступными в контроллере?

#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>