ASP.NET MVC3 응용 프로그램이 있습니다. 나는 ViewModel
다음과 같습니다ASP.NET MVC3에서 서버 호출간에 DropDownList 값을 유지하는 방법
public class MyViewModel
{
public string Year { get; set; }
public string Month {get; set; }
public IEnumerable<SelectListItem> Years
{
get
{
return Enumerable.Range(2000, DateTime.Now.Year - 2000).Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
});
}
}
}
그리고 다음 View
:
@model MyNamespace.MyViewModel
@Html.DropDownListFor(
x => x.Year,
new SelectList(Model.Years, "Value", "Text"),
"-- select year --"
)
@Html.DropDownListFor(
x => x.Month,
Enumerable.Empty<SelectListItem>(),
"-- select month --"
)
을 내가 완벽하게 작동 Year
에 대한 DropDownList
에서 onchange
을 트리거되는 jQuery
기능과 Month
에 대한 DropDownList
을 입력합니다. 양식이 서버에 게시되고 뷰가 다시 렌더링 될 때 'Month'DropDownList에 값을 유지하려면 Year
에 대해 올바르게 발생합니다. 그러므로 나는 (JQuery와 스크립트 이외의) 시도 :
public class MyViewModel
{
public string Year { get; set; }
public string Month {get; set; }
public IEnumerable<SelectListItem> Months
{
get
{
if(Year != null)
{
return Enumerable.Range(1, 12).Select(x => new SelectListItem
{
Value = x.ToString(),
Text = x.ToString()
});
}
}
}
그리고 View
에 : 나는 일을 짧게하기 위해 코드에서 년을 왼쪽
@Html.DropDownListFor(
x => x.Month,
new SelectList(Model.Months, "Value", "Text"),
"-- select month --"
)
합니다. 이 코드는 IEnumerable
이 비어 있기 때문에 처음 실행될 때 NullReferenceException
을 발생시킵니다. 어떻게하면 목표를 달성 할 수 있을까요?
작은 질문이지만 왜 올해의 변화 이벤트를 토대로 한 달을 채우는 것을 귀찮게합니까? 같은 시간에 둘 모두를 채우려는 것 같아서 궁금합니다. – IyaTaisho
@IyaTaisho, 통계를 표시하는 응용 프로그램을 만들고 동일한 논리로 일을 채 웁니다. 또한 사용자에게 – CiccioMiami