问题是从控制器向视图传递数据时获得空引用异常
我正在将模型传递给控制器的视图,如下所示:
{
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问题显示异常。
我想显示空字符串,如果它为空并显示剩余部分..
答案 0 :(得分:5)
此代码错误:
@Model.ProjectID==null??string.empty
如果ProjectID
是可空类型,您应该写:
@(Model.ProjectID ?? string.empty)
<强>加了:强>
替换:
return View()
使用:
return View(new Orderviewmodelnew())
因为null
对象没有任何属性
答案 1 :(得分:0)
通过
@model DreamTrade.Web.DALNew.Source
在您的视图顶部,您正在创建一个强类型视图,该视图需要该类型的模型。
但是,在控制器中,您传递的是Orderviewmodel
您需要确保传递给视图的模型属于正确的类型。