2014-09-17 2 views
2

У меня есть небольшая проблема. Я использую ASP.NET MVC 3 в Visual Web Developer Express, и когда я использую Html.Raw или Html.Encode в представлении бритвы или помощнике, я получаю исключение NullReferenceException во время выполнения.ASP.NET MVC3 Html.Raw, Html.Encode NullReferenceException

для Exemple:

@Html.Raw(post.Body) 

или другой

@Html.Raw(@Html.Encode(comment.Body).Replace(Environment.NewLine, "<br />")) 

Однако, строки не являются пустыми. Для Exemple, чтобы обойти первый случай, я использовал

@(new HtmlString(post.Body)) 

Но я бы понять, почему это не работает с HTML, Raw и Html.Encode, а не пытаться взломать.

Заранее благодарю вас за помощь.

+0

Я думаю, что сообщение равно null –

+0

или Body ... Не можете ли вы поставить точку останова на одну из этих строк и посмотреть, какой объект имеет значение null? – Kristof

+0

Вы попробовали @ {Html.Raw (post.Body)}? –

ответ

4

Я решил свою проблему. Я работаю в качестве помощника, которые принимают в качестве аргумента HtmlHelper

@helper Render(System.Web.Mvc.HtmlHelper html, ... 

Вместо вызова HTML аргумента, я назвал Html объекта, который не был создание экземпляра. Для резюме, вместо

@Html.Raw(...) 

я:

@html.Raw(...) 

Спасибо за ваши ответы.

0

Если вы получили сообщение об ошибке в этой строке @Html.Raw( пост .Body) пост является нулевым

и если вы получили сообщение об ошибке в этой строке @Html.Raw(Html.Encode( comment.Body) .Надеть (Environment.NewLine, «
») )comment или Body является null и ваш call Replace способ сверху null.

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