J'ai un DatePicker qui fonctionne sur une vue à laquelle un ViewModel est également associé. Lorsque j'exécute l'action Post sur le contrôleur, le ViewModel est de nouveau instancié et certaines valeurs ne sont pas disponibles dans la vue.ASP.Net MVC et jQuery DatePicker ViewModel
Le contrôleur d'action est:
public ActionResult Search()
{
ProjectSearchViewModel viewModel =
new ProjectSearchViewModel(
DateTime.Today.AddMonths(-1),
DateTime.Today.AddDays(1));
return View(viewModel);
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Search(ProjectSearchViewModel viewModel)
{
try
{
//Always returns a value from UI
DateTime startDate = viewModel.StartDate;
//NEVER returns a Value from UI
DateTime endDate = viewModel.EndDate;
.....
Le balisage View est:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/TabbedViewMasterPage.master" Inherits="System.Web.Mvc.ViewPage<Reactivity.Web.Models.ProjectSearchViewModel>"
%>
...
<label for="StartDate">
Start Date:
</label>
<% Html.jQuery().DatePicker()
.Name("StartDate")
.AllowMonthChange(true)
.AllowYearChange(true)
.ShowOn(DatePickerShowOn.Focus)
.ShowOtherMonths(true)
.Value(ViewData.Model.StartDate)
.Render(); %>
<br />
<label for="EndDate">
End Date:
</label>
<% Html.jQuery().DatePicker()
.Name("EndDate")
.AllowMonthChange(true)
.AllowYearChange(true)
.ShowOn(DatePickerShowOn.Focus)
.ShowOtherMonths(true)
.Value(ViewData.Model.EndDate)
.Render(); %>
<br />
<input type="submit" value="Search" />
Le programme DatePicker (deux instances sur View) fonctionne correctement.
Comment puis-je m'assurer que les champs ViewModel (viewModel.EndDate) sont retournés dans l'action du contrôleur? Ou est-ce un problème d'avoir deux (MVC) DatePickers sur le formulaire?
Un grand merci Brian