보기에서 컨트롤러로의 드롭 다운 목록에서 선택한 연도와 월을 얻는 방법. 내가 그것의주는 오류를봤을 때 "Yearitems"키가있는 'IEnumerable'유형의 ViewData 항목이 없습니다. 나는 Asp.net mvc에 새로운 것이므로 어떤 도움도 Appriciated 될 것입니다. 미리 감사드립니다. 선택한 연도와 월을 asp.net의 컨트롤러로 드롭 다운 목록에서 가져 오는 방법 MVC
이
이 내 컨트롤러 내보기<h3>Search by PhoneNumber:@Html.TextBox("SearchString",ViewBag.CurrentFilter as string) </h3>
<p><h3>Year:@Html.DropDownList("Yearitems", (IEnumerable<SelectListItem>)ViewBag.SelectList as SelectList, "Select Year")</h3>
<h3>Month:@Html.DropDownList("MonthItems",(IEnumerable<SelectListItem>)ViewBag.SelectMonthList as SelectList,"Select Month")</h3></p>
<p><input type="submit" value="Search" /></p>
<script>
$(document).ready(function() {
$("#Yearitems").change(function() {
//alert($("#Yearitems>option:selected").attr("Value"));
$.ajax({
type: "Post",
url: '@Url.Action("GetMonths","AirtelManagement")',
data: { YearId: $("#Yearitems>option:selected").attr("Value") },
datatype: "Json",
success: function (data) {
$("#MonthItems").html("");
$.each(data, function (index, item) {
$("#MonthItems").append(new Option(item.MonthName, item.MonthSelectedId));
});
},
error: function() {
alert("Select Year");
}
});
});
});
</script>
}
입니다.
public ActionResult ViewDataOfDatabase(string sortorder, string currentFilter, string searchString, int? page,string SelecetedYear,string SelectedMonth)
{
AirtelManagementModel _Airtelmodel = new AirtelManagementModel();
IEnumerable<clsYearOfDate> SelectList = GetYears();
//IEnumerable<MonthListClass> SelectMonthList = GetMonths(YearId);
IEnumerable<SelectListItem> Yearitems = (from v in SelectList
select new SelectListItem()
{
Value = v.YearSelectedId.ToString(),
Text = v.YearOfDate.ToString(),
});
ViewBag.SelectList = Yearitems;
//IEnumerable<SelectListItem> MonthItems = (from m in SelectMonthList
// select new SelectListItem()
// {
// Value = m.MonthSelectedId.ToString(),
// Text = m.MonthName,
// });
//ViewBag.SelectMonthList = MonthItems;
IEnumerable<SelectListItem> MonthItems = Enumerable.Empty<SelectListItem>();
ViewBag.SelectMonthList = MonthItems;
List<AirtelManagementModel> list = ViewDetails();
ViewBag.CurrentSort = sortorder;
ViewBag.PhoneSortParm = String.IsNullOrEmpty(sortorder) ? "Phone_desc" : "";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
//if(searchString!=null)
//{
ViewBag.SelectList = SelecetedYear;
ViewBag.SelectMonthList = SelectedMonth;
ViewBag.CurrentFilter = searchString;
var airteldetails = from _model in list
select _model;
if(!String.IsNullOrEmpty(searchString))
{
airteldetails=airteldetails.Where(A=>A.AirtelNumber.ToString().Contains(searchString.ToString()));
}
//airteldetails=airteldetails.OrderByDescending(A=>A.AirtelNumber);
int pageSize = 5;
int pageNumber = (page ?? 1);
//return View(airteldetails.ToList());
return View(airteldetails.ToPagedList(pageNumber, pageSize));
//}
//if (list.Count > 0)
//{
// var airteldetails = from _model in list
// select _model;
// return View(airteldetails.ToPagedList(pageNumber,pageSize));
//}
//else
//{
// ModelState.AddModelError("Error", "No Data found in Database");
// return RedirectToAction("ImportExcelFile", "AirtelManagement");
//}
}
컨트롤러 조치 방법을 게시 할 수 있습니까? – Neel
확인해보세요. 지금 추가했습니다. – user3273883
그러나 컨트롤러 항목에 이미 Yearitems 및 MonthItems 변수가 있습니다. @Gary Schreiner – user3273883