7

问题是在将数据从控制器传递到视图时出现空引用异常

我正在将模型从控制器传递给视图,如下所示:

 {
    ViewBag.PartId = id;
    var viewmodel= new Orderviewmodelnew();
    var order = new OrderMnagernew().GetSingleOrderField(id);
    viewmodel.ProjectId=order.ProjectId;
    return View(viewmodel);
 }

在视图中我有这样的代码

 @model DreamTrade.Web.BL.ViewModels.OrderViewModelnew


 Home>Project @Model.ProjectID==null??//projected is of type guid

 Customer :@(Model.CreatedBy??string.empty)

 Project :@Model.ProjectID
     @Model.ProjectDetail

  CreatedBy:@Model.CreatedBy

  Creation Date:@Model.CreationDate

 CompletedBy :@Model.ModifiedBy
 Completion Date:@Model.LastModified

 @Model.Image

   @Html.Action("OrderIndex", "Ordernew", new { PartId = Guid.Parse("C0497A40-2ADE-4B23-BA9F-1694F087C3D0") })

我试过这样

@if(Model.ProjectId==Null)
 {/....}

在控制器中,我尝试这样,如果模型为空,则不传递模型

 var order = new OrderMnagernew().GetSingleOrderField(id);
    if(order!=null)
   {
        viewmodel.ProjectId=order.ProjectId;
        return View(viewmodel);

   }
 return View()

视图中的 projectid 的问题是显示异常。

如果它为空,我想显示空字符串并显示剩余部分..

4

2 回答 2

6

这段代码是错误的:

@Model.ProjectID==null??string.empty

如果ProjectID是可空类型,你应该写:

@(Model.ProjectID ?? string.empty)

添加:

代替:

return View()

和:

return View(new Orderviewmodelnew())

because null object doesn't have any properties

于 2013-03-29T09:03:44.597 回答
0

通过放

@model DreamTrade.Web.DALNew.Source

在您的视图顶部,您正在制作一个强类型视图,该视图需要该类型的模型。

但是,在您的控制器中,您正在传递一个类型的模型Orderviewmodel

您需要确保传递给视图的模型是正确的类型。

于 2013-03-29T08:29:52.437 回答