2013-03-29 2 views
6

Проблемы становится нулевым ссылочным исключением при передаче данных от контроллера для просмотраМодели Null ссылка исключение в 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) 
{/....} 

В контроллере я попытался, как это, не передавая модель, если она равна нулю

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

    } 
return View() 

Проблема с этого ProjectID в представлении показывает исключение.

Я хочу, чтобы отобразить пустую строку, если она равна нулю, и показать оставшуюся часть ..

+0

Попробуйте использовать 'Model.ProjectId.Any()' в вашей, если заявление –

+0

Пожалуйста, добавьте текст исключение ссылки – webdeveloper

+0

Объект не установлен экземпляр объекта. это исключение – user2189168

ответ

3

Этот код является неправильным:

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

если ProjectID обнуляемым типа, вы должны написать:

@(Model.ProjectID ?? string.empty) 

Добавлено:

Заменить:

return View() 

с:

return View(new Orderviewmodelnew()) 

потому null объект не имеет свойства

+0

Ссылка на объект не установлена ​​в экземпляр объекта. Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде. Сведения об исключении: System.NullReferenceException: Ссылка на объект не установлена ​​в экземпляр объекта. Источник ошибки: Line 2: Линия 3: Линия 4: Главная> Проект @ (Model.ProjectID ?? Guid.NewGuid()) Линия 5: Line 6: Заказчик: @ Model.CreatedBy – user2189168

+0

Обновленный вопрос с вашим кодом, но получил ту же ошибку – user2189168

+0

@ user2189168 Вы передаете null для просмотра, посмотрите на обновленный ответ – webdeveloper

0

Поставив

@model DreamTrade.Web.DALNew.Source 

в верхней части вашей точки зрения, вы делаете строго типизированной который ожидает модель такого типа.

Однако в контроллере, вы передаете модель типа Orderviewmodel

Вы должны убедиться, что модель вы передаете зрения правильного типа.

+0

Обновлен вид, как вы упомянули, но та же ошибка – user2189168

Смежные вопросы