我有一个我希望通过View显示的数据类,允许用户更改它,并通过数据绑定将其恢复。我想通过@model动态做到这一点。这可能吗?
这是我的模特
public class MyData
{
public int A { get; set; }
public string B { get; set; }
}
发送到这样的视图
public ActionResult Index()
{
MyData[] myDataList = new MyData[2];
myDataList[0] = new MyData() { A = 2, B = "Fred" };
myDataList[1] = new MyData() { A = 3, B = "Sue" };
dynamic charts = (from ch in myDataList
select new
{
ch.A,
ch.B
}).AsEnumerable().Select(c => c.ToExpando());
return View(charts);
}
有这样的观点(这是错误的)
@model IEnumerable<dynamic>
@foreach (dynamic item in Model)
{
<text>
@Html.TextBox("item.B")
</text>
}
我在这里挣扎了一下,因为我不知道这是否可能,我找不到很多@model动态的复杂例子
要说清楚,这个例子是学术性的,我想要的是了解asp mvc中动态模型的可能性
有什么建议吗?
由于
答案 0 :(得分:1)
在您的观点中尝试此操作:
@for(int i = 0; i < Model.Lenght; i++)
{
@Html.TextBoxFor(model => model[i].A)
@Html.TextBoxFor(model => model[i].B)
}
答案 1 :(得分:0)
虽然你可以让它发挥作用,但我不推荐它。
简单修复恕我直言,将ExpandoObject
直接用作model
。将它转换为dynamic
毫无意义。