如何保留表格汇总的下拉值

时间:2018-02-16 06:13:49

标签: asp.net-mvc razor

当我更改下拉列表时,由于表单提交,页面似乎会回发。如何在表单提交时保留下拉列表选定值。 我将添加一个webgrid,它将根据下拉列表中的选定年份显示记录。所以我也想知道实现这些场景的最佳实践。 这是我的控制器类

 public ActionResult NewActivity()
    {
        List<SelectListItem> lstYear = new List<SelectListItem>();
        lstYear.Add(new SelectListItem { Value = "0", Text = "Select" });
        lstYear.Add(new SelectListItem { Value = "1", Text = "2017" });
        lstYear.Add(new SelectListItem { Value = "2", Text = "2018" });
        ViewBag.SelectedItem = "Select";
        ViewBag.YearList = lstYear;
        return View();
    }

    [HttpPost]
    public ActionResult NewActivity(string strYears)
    {
        return View(NewActivity);
    }

这是我的观点

<h2>NewActivity</h2>
@using (Html.BeginForm("NewActivity", "Activity", FormMethod.Get))
{
    @Html.DropDownList("strYears", new SelectList(ViewBag.YearList, "Value", "Text", ViewBag.SelectedItem), new { onchange = "form.submit();" })
}

我是MVC的新手。请指导我

1 个答案:

答案 0 :(得分:1)

在POST操作中添加所选项目的值。我假设strYears是DropDownList中所选项的值。

[HttpPost]
public ActionResult NewManageActivity(string strYears)
{
    ViewBag.SelectedItem = strYears;
    return View(NewManageActivity);
}