2013-03-29 12 views
6

モデルMVCのビューでのnull参照の例外

を表示するために、コントローラからデータを渡すときに問題が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") }) 

のようなコードを持っています私はそれがビューにPROJECTIDが例外を示している。この問題と

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

    } 
return View() 

nullである場合、モデルを通過しないことにより、このような試みコントローラで

私はそれがnullの場合、空の文字列を表示し、残りの部分を表示したい。..

+0

がに設定されていない例外テキスト –

+0

を使用してください試していないので、オブジェクトのインスタンスこれは例外です – webdeveloper

+0

オブジェクトの参照を追加し、 'Model.ProjectId.Any()'あなたの場合で声明 – user2189168

答えて

3

このコードが間違っている:

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

ProjectIDがNULL可能タイプであれば、あなたが書く必要があります:

@(Model.ProjectID ?? string.empty) 

を追加しました:

置き換えます

return View() 

return View(new Orderviewmodelnew()) 

nullオブジェクトは、任意のプロパティ

+0

オブジェクト参照がオブジェクトのインスタンスに設定されていません。 説明:現在のWeb要求の実行中に、未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。 例外の詳細:System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 ソースエラー: 2行目: 3行目: 4行目:ホーム>プロジェクト@(Model.ProjectID ?? Guid.NewGuid()) 5行目: 6行目:お客様:@ Model.CreatedBy – user2189168

+0

あなたのコードで質問を更新しましたが、同じエラーが発生しました – user2189168

+0

@ user2189168あなたはnullを渡して更新された回答を見てください – webdeveloper

0

ビューの上部に

@model DreamTrade.Web.DALNew.Source 

を置くことによって、あなたは強く型付けされたビューを作っていますそのタイプのモデルが必要です。

しかし、あなたのコントローラでは、あなたはあなたがビューに渡すモデルは右のタイプであることを確認する必要があるタイプOrderviewmodel

のモデルを渡しています。

+0

前述のようにビューを更新しましたが、同じエラー – user2189168