从视图调用模型

本文关键字:模型 调用 视图 | 更新日期: 2023-09-27 18:29:07

我在视图中调用模型属性时遇到问题。我可能需要在视图中创建一个它的实例。

错误消息:对象引用未设置为对象的实例但在模型内部,它运行良好。

视图:

@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; 

从视图调用模型

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

//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
} 

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

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