3 回答
TA贡献2012条经验 获得超12个赞
一个干净的解决方案可以创建一个通用类来处理列表,因此您不需要在每次需要时创建不同的类。
public class ListModel<T>
{
public List<T> Items { get; set; }
public ListModel(List<T> list) {
Items = list;
}
}
当您返回视图时,您只需要执行以下操作:
List<customClass> ListOfCustomClass = new List<customClass>();
//Do as needed...
return View(new ListModel<customClass>(ListOfCustomClass));
然后在模型中定义列表:
@model ListModel<customClass>
准备好了:
@foreach(var element in Model.Items) {
//do as needed...
}
TA贡献1848条经验 获得超2个赞
〜控制器
namespace ListBindingTest.Controllers
{
public class HomeController : Controller
{
//
// GET: /Home/
public ActionResult Index()
{
List<String> tmp = new List<String>();
tmp.Add("one");
tmp.Add("two");
tmp.Add("Three");
return View(tmp);
}
[HttpPost]
public ActionResult Send(IList<String> input)
{
return View(input);
}
}
}
〜强类型索引视图
@model IList<String>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@using(Html.BeginForm("Send", "Home", "POST"))
{
@Html.EditorFor(x => x)
<br />
<input type="submit" value="Send" />
}
</div>
</body>
</html>
〜强类型发送视图
@model IList<String>
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Send</title>
</head>
<body>
<div>
@foreach(var element in @Model)
{
@element
<br />
}
</div>
</body>
</html>
这就是你必须做的所有事情,将他的MyViewModel模型更改为IList。
- 3 回答
- 0 关注
- 402 浏览
添加回答
举报