在mvc视图中模型Null引用异常

use*_*168 7 asp.net-mvc asp.net-mvc-4

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

我将模型传递给控制器​​的视图,如下所示:

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

在视图中我有这样的代码

 @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") })
Run Code Online (Sandbox Code Playgroud)

我试过这样的事

@if(Model.ProjectId==Null)
 {/....}
Run Code Online (Sandbox Code Playgroud)

在控制器中,我尝试这样做,如果它是null,则不传递模型

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

   }
 return View()
Run Code Online (Sandbox Code Playgroud)

视图中的projectid的问题显示异常.

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

web*_*per 6

这段代码是错误的:

@Model.ProjectID==null??string.empty
Run Code Online (Sandbox Code Playgroud)

如果ProjectID为可空类型,则应输入:

@(Model.ProjectID ?? string.empty)
Run Code Online (Sandbox Code Playgroud)

添加:

更换:

return View()
Run Code Online (Sandbox Code Playgroud)

与:

return View(new Orderviewmodelnew())
Run Code Online (Sandbox Code Playgroud)

因为null对象没有任何属性