Html 回发后将dropdownlist的选定值传递给控制器

Html 回发后将dropdownlist的选定值传递给控制器,html,asp.net-mvc-4,razor-2,pagedlist,Html,Asp.net Mvc 4,Razor 2,Pagedlist,回发后如何将下拉列表的选定值从视图传递到控制器。由于我是MVC体系结构的新手,任何帮助都将不胜感激。提前谢谢。 我需要根据下拉列表的值过滤数据。但当我移动到pagedlist的下一页时,所有下拉列表的值都设置为默认值 控制器 public ActionResult ViewDataOfDatabase(string sortorder, string currentFilter, string searchString, int? page,FormCollection collecti

回发后如何将下拉列表的选定值从视图传递到控制器。由于我是MVC体系结构的新手,任何帮助都将不胜感激。提前谢谢。 我需要根据下拉列表的值过滤数据。但当我移动到pagedlist的下一页时,所有下拉列表的值都设置为默认值

控制器

    public ActionResult ViewDataOfDatabase(string sortorder, string currentFilter, string searchString, int? page,FormCollection collection) 
     {
         CCIRepository _repository = CCIRepository.CreateRepository();
         AirtelManagementModel _Airtelmodel = new AirtelManagementModel();
         IEnumerable<CityListClass> CityList = _repository.GetCities();
         IEnumerable<SelectListItem> CityNames = from c in CityList
                                                     select new SelectListItem()
                                                     {
                                                         Value = c.CityName.ToString(),
                                                         Text = c.CityName.ToString(),
                                                         Selected = c.CityName == Request["CityNames"],
                                                     };
         ViewBag.CityList = CityNames;
         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(),
                                                 Selected = v.YearOfDate == Request["Yearitems"],
                                             });

         ViewBag.SelectList = Yearitems;
         int DateId=0;
         string CityName = string.Empty; 
         try 
         { 

                int SelectedYear = Convert.ToInt16(collection["Yearitems"].ToString());
                int SelectedMonth = Convert.ToInt16(collection["MonthItems"].ToString());
                CityName = collection["CityNames"].ToString();
                DateId = _repository.GetImportDateId(SelectedYear, SelectedMonth);
                ViewBag.SelectedYear = SelectedYear;
                ViewBag.SelectedMonth = SelectedMonth;
                ViewBag.SelectedCity = CityName;

         }
         catch(NullReferenceException Ex)
         {
             Console.WriteLine(Ex);
         }
         //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.CurrentFilter = searchString;
            var airteldetails = from _model in list
                                select _model;
            if(!String.IsNullOrEmpty(searchString) && DateId!=0 && !String.IsNullOrEmpty(CityName))
            {
                airteldetails = _repository.FilterAirtelDetails(searchString, DateId, CityName);
                int PageSize = 5;
                int PageNumber = (page ?? 1);
                return View(airteldetails.ToPagedList(PageNumber, PageSize));
            }
            //airteldetails=airteldetails.OrderByDescending(A=>A.AirtelNumber);
            int pageSize = 5;
            int pageNumber = (page ?? 1); 
            //return View(airteldetails.ToList());
            return View(airteldetails.ToPagedList(pageNumber, pageSize));
      }
public ActionResult ViewDataOfDatabase(字符串排序器、字符串currentFilter、字符串搜索字符串、int?页、FormCollection集合)
{
CCIRepository _repository=CCIRepository.CreateRepository();
AirtelManagementModel_Airtelmodel=新的AirtelManagementModel();
IEnumerable CityList=_repository.GetCities();
IEnumerable CityNames=来自城市列表中的c
选择新的SelectListItem()
{
Value=c.CityName.ToString(),
Text=c.CityName.ToString(),
已选择=c.CityName==请求[“CityNames”],
};
ViewBag.CityList=城市名称;
IEnumerable SelectList=GetYears();
//IEnumerable SelectMonthList=GetMonths(YearId);
IEnumerable Yearitems=(从SelectList中的v开始)
选择新的SelectListItem()
{
Value=v.YearSelectedId.ToString(),
Text=v.YearOfDate.ToString(),
所选日期=v.YearOfDate==请求[“Yearitems”],
});
ViewBag.SelectList=Yearitems;
int-DateId=0;
string CityName=string.Empty;
尝试
{ 
int SelectedYear=Convert.ToInt16(集合[“Yearitems”].ToString());
int SelectedMonth=Convert.ToInt16(集合[“MonthItems”].ToString());
CityName=collection[“CityNames”].ToString();
DateId=\u repository.GetImportDateId(SelectedYear,SelectedMonth);
ViewBag.SelectedYear=SelectedYear;
ViewBag.SelectedMonth=SelectedMonth;
ViewBag.SelectedCity=CityName;
}
捕获(NullReferenceException Ex)
{
控制台写入线(Ex);
}
//IEnumerable MonthItems=(从SelectMonthList中的m开始)
//选择新的SelectListItem()
//                                          {
//Value=m.MonthSelectedId.ToString(),
//Text=m.MonthName,
//                                          });
//ViewBag.SelectMonthList=MonthItems;
IEnumerable MonthItems=Enumerable.Empty();
ViewBag.SelectMonthList=MonthItems;
List=ViewDetails();
ViewBag.CurrentSort=排序器;
ViewBag.PhoneSortParam=String.IsNullOrEmpty(排序器)?“电话描述”:“;
if(searchString!=null)
{
page=1;
}
其他的
{
searchString=currentFilter;
}
//if(searchString!=null)
//{
ViewBag.CurrentFilter=搜索字符串;
var airteldetails=来自列表中的_模型
选择_模型;
如果(!String.IsNullOrEmpty(searchString)&&DateId!=0&&!String.IsNullOrEmpty(CityName))
{
airteldetails=\u repository.FilterAirtelDetails(searchString、DateId、CityName);
int PageSize=5;
整数页码=(第1页);
返回视图(airteldetails.ToPagedList(PageNumber,PageSize));
}
//airteldetails=airteldetails.OrderByDescending(A=>A.AirtelNumber);
int pageSize=5;
整数页码=(第1页);
//返回视图(airteldetails.ToList());
返回视图(airteldetails.ToPagedList(pageNumber,pageSize));
}
看法

AirtelDetails
@使用(Html.BeginForm(“ViewDataOfDatabase”、“AirtelManagement”、FormMethod.Post))
{
按电话号码搜索:@Html.TextBox(“搜索字符串”,ViewBag.CurrentFilter为字符串)
年份:@Html.DropDownList(“Yearitems”,(IEnumerable)ViewBag.SelectList,“选择年份”)
月份:@Html.DropDownList(“MonthItems”,(IEnumerable)ViewBag.SelectMonthList,“选择月份”)
City:@Html.DropDownList(“CityNames”,(IEnumerable)ViewBag.CityList,“选择城市”)

$(文档).ready(函数(){ $(“#年项目”)。更改(函数(){ //调试器; //警报($(“#年项目>选项:选中”).attr(“值”); $.ajax({ 类型:“Post”, url:'@url.Action(“GetMonths”,“AirtelManagement”), 数据:{YearId:$(“#Yearitems>选项:选中”).attr(“值”)}, 数据类型:“Json”, 成功:功能(数据){ //调试器; $(“#MonthItems”).html(“”); $。每个(数据、功能(索引、项目){ $(“#MonthItems”).append(新选项(item.MonthName,item.MonthSelectedId)); }); }, 错误:函数(){ 警报(“选择年份”); } }); }); }); } @Model.PageCount的@页(Model.PageCountUrl.Action(“ViewDataOfDatabase”,“AirtelManagement”,new{page,so
   <h2 style="text-align:center">AirtelDetails</h2>
       @using (Html.BeginForm("ViewDataOfDatabase", "AirtelManagement",FormMethod.Post))
{
<h3>Search by PhoneNumber:@Html.TextBox("SearchString",ViewBag.CurrentFilter as string)</h3>

    <p><h3>Year:@Html.DropDownList("Yearitems",(IEnumerable<SelectListItem>)ViewBag.SelectList, "Select Year")</h3>
    <h3>Month:@Html.DropDownList("MonthItems", (IEnumerable<SelectListItem>)ViewBag.SelectMonthList, "Select Month")</h3>
    <h3>City: @Html.DropDownList("CityNames", (IEnumerable<SelectListItem>)ViewBag.CityList, "Select City")</h3></p>
<p><input type="submit" value="Search" /></p>

<script>
    $(document).ready(function () {
        $("#Yearitems").change(function () {
            //debugger;
            //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) {
                    //debugger;
                    $("#MonthItems").html("");
                    $.each(data, function (index, item) {
                        $("#MonthItems").append(new Option(item.MonthName, item.MonthSelectedId));
                    });
                },
                error: function () {
                    alert("Select Year");
                }
            });
        });
    });
</script>

}
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("ViewDataOfDatabase", "AirtelManagement", new { page, sortOrder = ViewBag.CurrentSort, currentFilter = ViewBag.CurrentFilter }))