2013-03-29 24 views
6

Vấn đề là nhận được ngoại lệ tham chiếu null khi thông qua dữ liệu từ bộ điều khiển để xemMẫu tham khảo Null ngoại lệ trong quan điểm của MVC

Tôi Đi qua một mô hình để xem từ bộ điều khiển như thế này:

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

Và trong Xem tôi có mã như thế này

@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") }) 

tôi đã cố gắng như thế này

@if(Model.ProjectId==Null) 
{/....} 

Trong bộ điều khiển tôi đã cố gắng như thế này bằng cách không đi qua mô hình nếu nó là null

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

    } 
return View() 

Vấn đề với điều này các projectid trong giao diện được thể hiện là ngoại lệ.

I Want để hiển thị chuỗi rỗng nếu nó là null và hiển thị các phần còn lại ..

+0

Hãy thử sử dụng 'Model.ProjectId.Any()' trong câu lệnh if –

+0

Xin vui lòng, thêm văn bản ngoại lệ tham khảo – webdeveloper

+0

Object của bạn không được đặt để một thể hiện của một đối tượng. đây là ngoại lệ – user2189168

Trả lời

3

Mã này là sai:

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

nếu ProjectID là loại nullable, bạn nên viết:

@(Model.ProjectID ?? string.empty) 

Added:

Thay thế:

return View() 

với:

return View(new Orderviewmodelnew()) 

null đối tượng không có bất kỳ thuộc tính

+0

Tham chiếu đối tượng không được đặt thành phiên bản của đối tượng. Mô tả: Một ngoại lệ không được xử lý xảy ra trong khi thực hiện yêu cầu web hiện tại. Vui lòng xem lại dấu vết ngăn xếp để biết thêm thông tin về lỗi và vị trí bắt nguồn từ mã. Chi tiết ngoại lệ: System.NullReferenceException: Tham chiếu đối tượng không được đặt thành phiên bản của đối tượng. Nguồn Lỗi: Dòng 2: Dòng 3: Dòng 4: Trang chủ> Dự án @ (Model.ProjectID ?? Guid.NewGuid()) Dòng 5: Dòng 6: Khách hàng: @ Model.CreatedBy – user2189168

+0

Đã cập nhật câu hỏi với mã của bạn nhưng gặp lỗi tương tự – user2189168

+0

@ user2189168 Bạn bỏ qua null để xem, hãy xem câu trả lời cập nhật – webdeveloper

0

Bằng cách đặt

@model DreamTrade.Web.DALNew.Source 

ở phía trên cùng của tầm nhìn của bạn, bạn đang làm cho một cái nhìn mạnh mẽ, đánh máy dự kiến ​​một mô hình kiểu đó.

Tuy nhiên, trong điều khiển của bạn, bạn đang đi qua một mô hình kiểu Orderviewmodel

Bạn cần phải chắc chắn rằng các mô hình để bạn vượt qua quan điểm là đúng loại.

+0

Đã cập nhật chế độ xem như Bạn đã đề cập nhưng lỗi tương tự – user2189168

Các vấn đề liên quan