获取错误:未将对象引用设置为对象的实例

时间:2015-01-06 04:13:57

标签: c# asp.net asp.net-mvc razor

任何人都可以帮助我:

我需要在_DeliveryDetailsPatial.cshtml中显示动态数据。每次用户处于“交付信息”页面或“新建地址”页面时,都会调用此方法。每次我要导航到这些页面中的任何一个时,我都会遇到这个错误:

  

对象引用未设置为对象的实例

我该如何解决这个问题?

谢谢!

这是我的代码:

_DeliveryDrtailsPartial

@model QuiznosOnlineOrdering.Models.StoreViewModel
<table id="orderTable" class="table">
        <tr>
            <td class="t">Item</td>
            <td class="t">Quantity</td>
            <td class="t">Item Price</td>
        </tr>
        @foreach (var item in Model.StoreAddress)
        {
            <tr>
                <td>@Html.DisplayFor(model => item.NOM)</td>
                <td>@Html.DisplayFor(model => item.ADRESSE)</td>
                <td>@Html.DisplayFor(model => item.VILLE)</td>
            </tr>
        }
    </table>

StoreViewModel

    public IEnumerable<Store> StoreAddress { get; set; }
    public IEnumerable<StoreHour> StoreHour { get; set; }
    public IEnumerable<ReferenceAcceptedPayment> StoreAcceptedPayment { get; set; }

DeliveryController

[HttpGet]
public ActionResult GetStoreDetails()
{
    StoreViewModel store = new StoreViewModel();
    store.StoreAddress = from s in db.Store
                             select s;

    return View();
}

3 个答案:

答案 0 :(得分:4)

[HttpGet]
public ActionResult GetStoreDetails()
{
    StoreViewModel store = new StoreViewModel();
    store.StoreAddress = from s in db.Store
                             select s;

    return View(store);
}

您尚未通过模型

答案 1 :(得分:2)

您实际上从未将模型注入视图中。

[HttpGet]
public ActionResult GetStoreDetails()
{
    StoreViewModel store = new StoreViewModel();
    store.StoreAddress = from s in db.Store
                             select s;

    return View(store);
}

因此,当您尝试读取模型上的属性时,会出现异常,因为模型为空。

答案 2 :(得分:0)

您需要像这样传递模型

    [HttpGet]
public ActionResult GetStoreDetails()
{
    StoreViewModel store = new StoreViewModel();
    store.StoreAddress = from s in db.Store
                             select s;

    return View(store);
}

以下链接也可以帮助您将视图传递给局部视图。

 return PartialView("_ViewPage",model);

Setting models in asp.net mvc views and partial views