Asp.net mvc 如何按索引查找通用列表值

Asp.net mvc 如何按索引查找通用列表值,asp.net-mvc,asp.net-mvc-3,Asp.net Mvc,Asp.net Mvc 3,我有一个包含4个值的通用列表。 如何通过索引获取通用列表值?我想得到泛型列表中的所有值 这是我的代码: var Checked = (form.GetValues("assignChkBx")).ToList(); string str = ""; for (int i = 0; i < Checked.Count; i++) { str = str + Checked[i]. +","; } var Checked=(form.GetValues(“assignCh

我有一个包含4个值的通用列表。 如何通过索引获取通用列表值?我想得到泛型列表中的所有值 这是我的代码:

var Checked = (form.GetValues("assignChkBx")).ToList();     
string str = "";
for (int i = 0; i < Checked.Count; i++)
{
    str = str + Checked[i]. +",";
} 
var Checked=(form.GetValues(“assignChkBx”)).ToList();
字符串str=“”;
for(int i=0;i

在这段代码中,我得到了所有选中的复选框值。现在我想得到所有的值。如何获取值?

您关于通用列表的问题具有误导性,我怀疑这与您真正的问题无关

根据您在视图中生成复选框的方式,这可能是可能的,也可能是不可能的。如果直接使用未选中复选框的标记值对其进行硬编码,则不会将其发送到服务器-这就是HTML复选框的工作方式。在这种情况下,您将无法获取所有值。另一方面,如果您使用
Html.CheckBoxFor
helper来生成它们,那么您会注意到该helper会向每个复选框添加一个隐藏字段,以便发送所有值。不过,此帮助程序对布尔值进行操作

因此,我建议您创建一个视图模型,该模型将包含两个属性:一个包含您感兴趣的值,另一个布尔属性指示用户是否在视图中选择此值:

public class ItemViewModel
{
    public string Value { get; set; }
    public bool Checked { get; set; }
}
然后创建一个视图模型,其中包含这些项的集合:

public class MyViewModel
{
    public ItemViewModel[] Items { get; set; }
}
现在,在视图中,可以按如下方式渲染这些值:

@model MyViewModel
@using (Html.BeginForm())
{
    for ( var i = 0; i < Model.Items.Length; i++)
    {
        <div>
            @Html.CheckBoxFor(x => x.Items[i].Checked)
            @Html.HiddenFor(x => x.Items[i].Value)
        </div>
    }

    <button type="submit">OK</button>
}

“获取所有值”-您在谈论什么值?当选中复选框时,我获取行ID。
[HttpPost]
public ActionResult SomeAction(MyViewModel model)
{
    foreach (var item in model.Items)
    {
        // here you could use item.Checked and item.Value
    }
    ...
}