在c#MVC4中获取列表框中所选值的总和
Posted
技术标签:
【中文标题】在c#MVC4中获取列表框中所选值的总和【英文标题】:getting the sum of the selected values in a listbox in c# MVC4 【发布时间】:2015-03-25 20:53:47 【问题描述】:我正在尝试创建一个多选列表框并显示其 SELECTED 项的总和。所以在这里我做了什么: 我创建了一个 ViewModel
public class profilViewModel
public IEnumerable<SelectListItem> roles get; set;
public IEnumerable<String> Selectedroles get; set;
这里是控制器:
public profilViewModelController : Controller
private Context db = new Context();
//
// GET: /profilViewModel/
[HttpGet]
public ActionResult Index()
List<SelectListItem> listSelectListItem = new List<SelectListItem();
foreach (role role in db.role)
SelectListItem selectListItem = new SelectListItem()
Text = role.role_name,
Value = role.role_value.ToString(),
Selected = role.IsSelected
;
listSelectListItem.Add(selectListItem);
profilViewModel profilViewModel = new profilViewModel();
profilViewModel.roles = listSelectListItem;
return View(profilViewModel);
这是我的模型:
public class role
[Key]
public int role_id get; set;
public string role_name get; set;
public int role_value get; set;
public Boolean IsSelected get; set;
列表框工作正常,问题是我想显示所选项目的总和,我试过这个方法:
public int Index(IEnumerable<int> Selectedroles)
if (Selectedroles == null)
return 0;
else
int result = 0;
for (int i = 0; i < Selectedroles.Count(); i++)
result += Convert.ToInt32(Selectedroles);
return result;
但是转换不起作用,我错过了什么吗?谢谢你的帮助!
PS:我的列表框从 hidden 的答案中得到启发 JQuery Get values from Multi Select List if statement MVC3
【问题讨论】:
【参考方案1】:你的代码应该是这样的
public int Index(IEnumerable<int> Selectedroles)
if (Selectedroles == null)
return 0;
else
var arr = Selectedroles.ToArray();
int result = 0;
for (int i = 0; i < arr.Length; i++)
result += Convert.ToInt32(arr[i]);
// another way
foreach(var r in Selectedroles)
result += r;
return result;
【讨论】:
当我调试它说我们不能在 IENUMERABLE以上是关于在c#MVC4中获取列表框中所选值的总和的主要内容,如果未能解决你的问题,请参考以下文章