0

我在提交时选择 ListBoxFor 控件中的项目时遇到问题。我正在使用PageDlistPager控件,在选择下一页时,ListBoxor Control正在丢失所选值并投掷错误。

这是我的代码:

视图模型:

public IEnumerable<SelectListItem> FiscalYearsData { get; set };
public IEnumerable<int> SelectedYears { get; set; }

控制器(从存储库加载 FiscalYearsData 如下):

fourteenStepStatusView.FiscalYearsData = 
projectRepository.GetFiscalYears.Select
(yr => new SelectListItem { Text = yr.ToString(), Value = yr.ToString()}).ToList();

看法:

@Html.ListBoxFor(model => model.SelectedYears, new      
MultiSelectList(Model.FiscalYearsData, "Value", "Text", Model.SelectedYears),  
new { @Id = "lstFiscalYears", @class = "ListBoxFor70Style", Multiple = "multiple", 
size = "3" })

谁能帮我解决同样的问题。我不确定我在这里犯了什么错误。

谢谢

4

2 回答 2

1

嗯……是的。页面链接只是标准的旧链接,它们会导致您的浏览器发出对下一页的 GET 请求。它不是每次都发布您的表格。保留页面之间任何列表框选择的唯一方法是使用 AJAX 更新列表的后端版本,或者使用 JavaScript 修改页面链接上的查询字符串,以便在每次更改时包含选择。

像往常一样,更好的方法可能是停下来重新思考你想要实现的目标。美元到角钱有更好的方法。

于 2013-08-07T20:25:27.773 回答
0

尝试以下任何一种方法:(两者都可以)

更改 SelectedYears 属性如下

public IEnumerable<string> SelectedYears { get; set; }

或者

更改获取会计年度的服务调用如下

fourteenStepStatusView.FiscalYearsData = projectRepository.GetFiscalYears.Select
(yr => new SelectListItem { Text = yr.ToString(), Value = (int)yr}).ToList()
于 2013-08-08T10:12:03.433 回答