asp.net-mvc – mvc视图中的模型空引用异常

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

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

{
    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)
 {/....}

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

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

   }
 return View()

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

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

解决方法

这段代码错了:

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

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

@(Model.ProjectID ?? string.empty)

添加:

更换:

return View()

有:

return View(new Orderviewmodelnew())

因为null对象没有任何属性

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...