【发布时间】:2011-05-13 13:33:22
【问题描述】:
我有一个下拉框,其中包含供用户选择的时间列表。我的问题是,在用户选择他们的选择然后点击提交按钮后,页面被刷新,然后下拉框再次设置为默认值 - 即使在页面重新加载后,我怎样才能让用户的选择留在下拉框中?我不确定我的代码的哪一部分最需要我的 Get 和 Post 很长 - 但如果有一个通用示例会有所帮助。
来自控制器的代码:
这是我加载到下拉框中的列表之一:
IQueryable<User> users = _userRepository.FindAllForOffice(_currentUser.OfficeId);
userViewModel.Users = users.ToSelectList("UserId", "FullName",
userViewModel.UserId.ToString());
foreach (SelectListItem view in userViewModel.Users)
{
if (!viewData.ContainsKey(view.Text))
viewData.Add(view.Text, view.Value + "|user");
}
这是添加到实际下拉列表中:
userViewModel.ViewData = viewData.ToSelectList("Value", "Key",
userViewModel.Value);
return View("UserSummary", userViewModel);
在我的 ASPX.CS 页面上,我有以下内容:
页面加载
string viewType = null;
if(!String.IsNullOrEmpty(Request.QueryString["viewType"]))
{
viewType = Request.QueryString["viewType"];
}
if(!IsPostBack)
{ if (viewType == "user")
{
viewParams.Add("ViewName", "User Report");
var reportDataSource =
_userService.GetUsersReportData(beginDate, endDate, id);
reportViewer.Initialize("UserIndividual.rdlc",
new List<ReportDataSource> {reportDataSource}, viewParams);
}
我没有为所有元素添加所有初始化 - 不认为这种情况真的需要它
谢谢
【问题讨论】:
-
您是使用
SelectListItem来填充您的下拉菜单,还是您自己手动构建它?请提供代码示例以便更好地给您回复。 -
@Tejs - 是的,我正在使用 SelectListItem 并且我在上面添加了一些代码。谢谢!
-
这几乎不像 ASP.NET MVC...在您看来,您是调用
Html.DropDownList还是自己编写代码?我想看看。 -
您的意思是按 F5 刷新页面时重新加载页面吗?
-
@Dutch 是的 - 我的意思是刷新
标签: c# asp.net-mvc