从视图调用模型

时间:2012-03-26 20:21:18

标签: c# sql database model-view-controller

我在查看模型属性时遇到问题。我可能必须在视图中创建它的实例。

错误消息:对象引用未设置为对象的实例。但是在模型中它可以正常工作。

查看:

@model site.Models.modeldata  
     @foreach (System.Data.DataRow row in  Model.DataSets["test"].Tables[0].Rows)
    {
        @:row["id"] 
    }  

型号:

 public IDictionary<string, DataSet> DataSets { get; private set; 

2 个答案:

答案 0 :(得分:1)

您应该在模型的构造函数中初始化控制器中的DataSets属性,或者更好。除非您有明确的理由,否则集合属性不应为null。

当然,在这种特殊情况下,您还应该在引用之前检查字典中是否存在“test”。

答案 1 :(得分:1)

您的控制器应决定包含视图所需的数据。重构使用数据集以外的其他内容。

//build up a collection in the controller
var items = new List<Customer>();
items.Add(new item{ ID = 4, CustomerName="user123"});
ViewBag.items = items;  //pass to the view via ViewBag, a dynamic object

在您看来:

@foreach (var item in ViewBag.items)
{
    @:item.ID + " " + item.CustomerName
}