0

我正在构建 MVC3“代码优先”应用程序并在我的页面上显示数据我使用以下内容:
控制器代码:

public ViewResult Index()
{
dynamic assignedT = from t in db.AssignedTasks

join a in db.Approvers on t.ApproverID equals a.ID
 join r in db.Requestors on t.RequestorID equals r.ID
 select new {Approver =a.FirstName + " " +a.LastName,
 Requestor=r.FirstName + " " + r.LastName,
 Title = t.Title,
 t.RequestedDate,
 t.CompletedDate, t.Description,
 Status =(int)t.InternalStatut
  };

 return View(assignedT);
    }

并在页面上:

@{
   ViewBag.Title = "Index";
 }
<h2>Index</h2>
 <table>
  @foreach (var item in Model) {     
 <tr> 
   <td>@item.GetType().GetProperty("Title").GetValue(item, null)
   </td> 
   </tr> 
   } 
</table>

我知道使用动态不是最好的方法。 如何使用强类型视图实现相同的功能? 谢谢

4

1 回答 1

1

您可以定义以下类:

public class MyViewModel
{
    string Approver { get; set; }
    string Requestor { get; set; }
    string Title { get; set; }
    DateTime RequestedDate { get; set; }
    DateTime CompletedDate { get; set; }
    string Description { get; set; }
    int Status { get; set; }
}

如果您随后select new将 Linq 查询更改为 ,select new MyViewModel那么您将拥有一个强类型的视图模型(和dynamicvar

于 2012-04-04T20:43:32.620 回答