7

問題は、コントローラーからビューにデータを渡すときに null 参照例外が発生することです

次のように、コントローラーからビューにモデルを渡しています。

 {
    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の場合は空の文字列を表示し、残りの部分を表示したい..

4

2 に答える 2

6

このコードは間違っています:

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

null 許容型の場合ProjectIDは、次のように記述します。

@(Model.ProjectID ?? string.empty)

追加した:

交換:

return View()

と:

return View(new Orderviewmodelnew())

nullオブジェクトにはプロパティがないため

于 2013-03-29T09:03:44.597 に答える
0

置くことによって

@model DreamTrade.Web.DALNew.Source

ビューの上部で、そのタイプのモデルを期待する強く型付けされたビューを作成しています。

ただし、コントローラーでは、タイプのモデルを渡していますOrderviewmodel

ビューに渡すモデルが正しいタイプであることを確認する必要があります。

于 2013-03-29T08:29:52.437 に答える