public class SearchForm {
//Note: Property is nullable
public DateTime? CurrentViewDate {get;set;}
public DateTime StartDate {get;set;}
}
//In the controller
//[GET]
public ActionResult Index()
{
}
//[POST]
public ActionResult Index(SearchForm formModel)
{
if(formModel.CurrentViewDate == null)
formModel.CurrentViewDate = DateTime.Now.AddDays(1d);
else
formModel.CurrentViewDate = formModel.CurrentViewDate.AddDays(1d);
formModel.StartDate = DateTime.Now;
}
//In view
@Html.HiddenFor(c => c.CurrentViewDate).
<input id="SearchForm_CurrentViewDate" name="SearchForm.CurrentViewDate"
type="hidden" value="5/25/2012 11:59:59 PM" />
<input type="submit" name="btnNext" id="btnNext" value="Go Increment" />
, 나는 때 필드가 이전 값을 보유하고 있으며이 @Html을 할 경우 올바른 값을 표시하는 유일한 방법은 이다의 값이 증가하지만, 숨겨진됩니다 않습니다 제출을 클릭합니다 .HiddenFor (c => c.CurrentViewDate.Value). 그러나 에 formModel.CurrentViewDate에 바인딩 이름이 다르므로 null 값이 있습니다.@ Html.HiddenFor
아이디어가 있으십니까?
public ActionResult Index(SearchForm formModel)
{
ModelState.Remove("CurrentViewDate");
if(formModel.CurrentViewDate == null)
{
formModel.CurrentViewDate = DateTime.Now.AddDays(1d);
}
else
{
formModel.CurrentViewDate = formModel.CurrentViewDate.AddDays(1d);
}
return View(model);
}
이유를 당신은이 작업을 수행 할 필요가 : 그것은 startDate 프로퍼티와 대신 CurrentViewDate 호텔에서 날짜 시간 값을 가져 오는 것 당신이 그것을 수정하려는 경우 당신은 ModelState에서 값을 제거해야
Genuis !!! :-) 그게 효과가! – user357086