2010-09-21 2 views
0

Я столкнулся несколько различных исключений с этим блоком кода в одном из моих взглядов:ASP.NET MVC2 встроенный код в поле зрения - микширование теги

<% if (Model.Book.ReviewReference == null) 
    {%> 
     <%=Html.ActionLink("Rate/review this book", "Create", "Review", null, new { id = "reviewLink" }) %> 
     <% Html.RenderPartial("CreateReview"); 
    } 
    else 
    {%> 
     <%= Html.ActionLink("Edit this book's rating/review","Edit", "Review", new { reviewID = Model.Book.ReviewID}, new {id = "reviewLink"}) %> 
     <% Html.RenderPartial("EditReview", Model.Book.Review, new ViewDataDictionary()); 
    } %> 

Первая ошибка я столкнулся была описана здесь: link text

таким образом Html.RenderPartial("EditReview", Model.Book.Review, new ViewDataDictionary()) вы видите к концу там.

Еще одна проблема, которую я столкнулся это когда, если условие вычисляется для ReviewReference, который на самом деле null, заявление еще до сих пор как-то достигли, а второй частичный вид делает неудачную попытку оказать себя.

Я использовал эти чередующиеся теги встроенного кода неверным образом? Как идти взад и вперед между <% %> и <%= %> правильно?

спасибо.

Edit:

ОК, я отметил ответ слишком рано. Я просто попробовал его с заданным кодом из ответа, и этот блок еще оценивается и пытается передать нулевые объекты в частичный вид ... черт его.

ответ

1

ОК, так что получается, мое использование тега было хорошо, но мое состояние, если было выключено. Это должно быть:

if (Model.Book.ReviewReference.EntityKey == null) 

Мне не хватало имущества EntityKey.

1

Вы верны в использовании вами тегов.

Они не являются двумя чередующимися стилями, но различия в том, как механизм просмотра имеет дело с различными утверждениями. Неудивительно, что это может запутать.

<%=: Подумайте об этом как Response.Write(). Вы снабжаете его строкой.

<% Html.RenderPartial - это команда, предоставляемая движку просмотра, чтобы фактически отобразить частичный вид. Вы не даете ему строку, а скорее передаете представление, чтобы получить другой фрагмент (частичный просмотр) и записать его.

1

Отсутствует пару закрытия%>

<% if (Model.Book.ReviewReference == null) 
    {%> 
     <%=Html.ActionLink("Rate/review this book", "Create", "Review", null, new { id = "reviewLink" }) %> 
     <% Html.RenderPartial("CreateReview"); %> 
    <%} 
    else 
    {%> 
     <%= Html.ActionLink("Edit this book's rating/review","Edit", "Review", new { reviewID = Model.Book.ReviewID}, new {id = "reviewLink"}) %> 
     <% Html.RenderPartial("EditReview", Model.Book.Review, new ViewDataDictionary()); %> 
    <% } %> 
+0

Doh! :) Приветствую Роберта! –

+0

Хорошо, спасибо за то, что выпрямили меня на этом. Почему те закрывающие теги нужны, не имеют для меня никакого смысла. Вероятно, поэтому я обманул его для начала. – asfsadf

+0

Это чертовски много тегов, теперь, когда я снова смотрю на это. Sheesh! – asfsadf

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