C# 获取列表<;ViewModel>;从视图到控制器
我有一个C# 获取列表<;ViewModel>;从视图到控制器,c#,asp.net-mvc-4,C#,Asp.net Mvc 4,我有一个视图,它允许编辑视图模型的列表。代码一直工作到显示功能结束。但是我无法从视图中获取同一列表中的值 public ActionResult Funtion() { List<ViewModel> ViewModel= (List<ViewModel>)TempData["ViewModel"]; return View(ViewModel); } [Ht
视图
,它允许编辑视图模型
的列表
。代码一直工作到显示功能结束。但是我无法从视图中获取同一列表中的值
public ActionResult Funtion()
{
List<ViewModel> ViewModel= (List<ViewModel>)TempData["ViewModel"];
return View(ViewModel);
}
[HttpPost]
public ActionResult UserFormSubmission(List<ViewModel> ViewModel)
{
return View();
}
您需要使用foreach station的索引器istead来允许mvc重新构建您的列表。 类似的问题已经被提出了我建议:
,否则它将无法简单地工作
for(int i=0;iModel[i].Text)
}
在表单提交时,您可以使用模型列表轻松获得它。请添加更多关于视图的代码,例如html标记在哪里?@ElvinArzumanoğlu-这与当前情况无关。我只包含了需要的内容。如果你有新问题,请发布新问题。不要用独立的问题不断更新你现有的问题,因为你会在同一个列表中找到不同问题的答案。您已经解决了问题-您的模型已绑定。单选按钮和下拉列表的问题是分开的。@AntP-这是同一个问题。这就是它更新的原因。我看到了它,并尝试使用它。但遇到以下错误:
无法将带[]的索引应用于“System.Collections.Generic.IEnumerable”类型的表达式
您需要更改视图中的类型,以使用List而不是IEnumerablet视图中的模型声明应为:@model ListYes已更正它。请参见编辑。但我仍然得到空值。你能用标记发布当前视图吗?问题是我有不止一种类型,如文本框、复选框、RadioButton、DropDownList等。你的意思是,你对同一属性有不止一种类型的控件。?但是,如果您的意思是您有其他控件,如复选框、radiobutton或dropdownlist,用于不同的属性,那么您也可以通过使用带有for标记的控件来获取这些控件的选定值,正如我在textbox中所做的示例,但复选框等需要合适的数据类型,如不可为null的布尔值。我已经更新了我的问题。看看你的答案是否能解决这个问题scenario@Rohit,我不是判断我的答案是否正确的合适人选。选择该答案作为逻辑正确的解决方案(以便其他读者不会误入歧途)以及为您提供解决方案或引导您找到解决方案的答案:)@Rohit,for(i=0;…;的在哪里?
循环?我将foreach
循环替换为for(i=0;;)
检查或
@for (i = 0; i < Model.Count(); ++i)
{
if (Model[i].TypeId == 4)
{
//radiobutton
for (int j = 0; j < Model[i].Options.Count(); ++j)
{
<div>
@Html.HiddenFor(m => m[i].Options[j].OptionId)
@Html.HiddenFor(m => m[i].Options[j].OptionValue)
@Html.HiddenFor(m => m[i].Options[j].Id)
@Html.RadioButtonFor(m => m[i].Options[j].Value, @Model[i].Options[j].DisplayText)
@Html.DisplayFor(m => m[i].Options[j].DisplayText)
</div>
}
}
}
for(int i=0;i<Model.Count;i++)
{
<tr>
<td>
@Html.TextBoxFor(model=>Model[i].Text)
</td>
<tr>
}