我知道这听起来有点偏离滑雪道,但是你会如何创建一个弱类型的视图,你传入一组对象并相应地在剃刀中迭代并显示在一个表中?
- 控制器视图 - ???
- Razor View ---
@foreach (var item in Model)
{
<tr>
<td>
@item.attr1
</td>
<td>
@item.attr2
</td>
</tr>
}
答案 0 :(得分:2)
首先你知道发送的数据 来自Controller -------&gt;通过双向观察
没有其他方法可以将数据从控制器传递到视图...(请记住)
什么是intelliscence ----&gt;显示任何模型的相关子属性 就像我们写模型。 --------&gt;然后所有的财产显示在 点(。)后的重组列表。A.什么是弱类型视图
实施例
.............Controller
ViewBag.List = List<job>;
return View();
.............Razor View
@foreach(var item in ViewBag.List)
{
// when you write no intellisence and you want to write your own correct one...
@item.
}
B中。什么强烈的类型视图
实施例。
.................Controller
List<job> jobdata =new List<job>();
return View(jobdata);
................view
//Mention here datatype that you want to strongly type using **@model**
@model List<job>
@foreach(var item in Model)
//this **Model** represent the model that passed from controller
// default you not change
{
@item. //then intellisence is come and no need write own ....
}
那是弱而强的类型观点......
所以现在你解决这个基本的任何问题.....
我希望它可以帮助你......
但最好使用强类型视图,以便变得容易 使用和最好的比较弱...
答案 1 :(得分:0)
它不是弱类型的。它被打印成某种类型的集合。
@model IEnumerable<MyClass>
答案 2 :(得分:0)
@model dynamic
我相信会做你想做的事。
如果它将成为一个集合,那么可以使用
@model ICollection
答案 3 :(得分:0)
好的,我知道的派对迟到了,但你所说的是一个说明“@model dynamic”的观点,如前所述。
工作示例:(在发布时的mvc3中)
NB在下面的例子中,视图实际上是传递给System.Collections.IEnumerable 因为它是弱类型的,所以你不会为@ item.Category等项目获得intelesense。
@model dynamic
@using (Html.BeginForm())
{
<table class="tableRowHover">
<thead>
<tr>
<th>Row</th>
<th>Category</th>
<th>Description</th>
<th>Sales Price</th>
</tr>
</thead>
@{int counter = 1;}
@foreach (var item in Model)
{
<tbody>
<tr>
<td>
@Html.Raw(counter.ToString())
</td>
<td>
@item.Category
</td>
<td>
@item.Description
</td>
<td>
@item.Price
</td>
</tr>
@{ counter = counter +1;}
</tbody>
}
</table>
}
编辑:删除了一些css