我有一个用asp.net web表单编写的代码,里面有很多转发器Databind,我正在尝试使用Repository Patterns将其重写为MVC 5 EF 6。我知道我不能在MVC中使用转发器,但是如何在MVC中重写下面的代码
private void GroupList(Repeater rpt,int DtID,int GroupID,string conNumber,string conName) { 尝试 {
attempttoclassify
答案 0 :(得分:1)
如果您的list
变量将包含您需要的数据,那么您可能会在控制器中获取该数据。然后,您将添加到模型中。它可能看起来像这样:
public ActionResult SomeAction()
{
var list = data.List<CtItem>
.Where(c.CNumber == conNumber && c.Name == conName)
.OrderBy(o => o.CNumber);
return View(list);
}
在这种情况下,list
的数据类型将 您视图的模型。如果还有其他数据需要转到视图,那么它可能只是自定义视图模型上的属性。像这样:
public ActionResult SomeAction()
{
var list = data.List<CtItem>
.Where(c.CNumber == conNumber && c.Name == conName)
.OrderBy(o => o.CNumber);
var viewModel = new SomeViewModel();
viewModel.SomeProperty = list;
// set other values on the view model
return View(viewModel);
}
然后在您的视图中,您将根据模型上的值构建标记。据推测,您的网格正在生成某种<table>
。因此构造输出可能如下所示:
<table>
<tr>
<th>Column Heading</th>
</tr>
@foreach (var item in Model.SomeProperty)
{
<th>
<td>@item.SomeColumnValue</td>
</th>
}
</table>
当然,这只有一列。无论您的结构需要什么,您都可以进行扩展。您还可以从元数据等中获取列标题。您可以 添加许多复杂性。但总的问题是,您尝试做的事情是从数据源获取数据,将其发送到视图,并在视图中显示。