2015-07-20 16 views
5

Dlaczego, gdy mam pewne HTML w moich wyciągach C#, czy Razor narzeka na nieprawidłowe wyrażenia i terminy?Jak uwzględnić kod HTML wewnątrz Jeśli oświadczenie

Jak mogę to naprawić?

Na przykład; w moim _layout.cshtml:

@if (Team.Id == ViewBag.TeamId) 
{ 
    </div> 
    <div class="row"> 
    &nbsp; 
} 
+0

Jak @RowanFreeman wskazał, uciekając HTML z '@:' to jeden ze sposobów obejścia tego. Jeśli możesz podać więcej kontekstu na temat tego, co robisz (jakie są twoje dane, jaki jest pożądany wynik marży), założę się, że ktoś mógłby wymyślić rozwiązanie, które nie wymagałoby martwienia się o to. – jdphenix

+0

Inną opcją byłoby połączenie końcowego elementu div z początkowym elementem div i odwrotnie. Podany fragment kodu jest nieco anty-wzorcowy, skąd pochodzę, ponieważ dzielisz div w miejscu na pozór przypadkowym. – holroy

Odpowiedz

8

Razor próbuje zrozumieć twój HTML. Niestety nie może być wysoce inteligentny i rozpoznać dynamiczny kod lub kod poza wyrażeniem.

Od

</div> 
<div> 

jest nieprawidłowy HTML, narzeka.

Można uniknąć tego problemu za pomocą @:

Zmusza maszynki do ominięcia jej „uznanie HTML” i po prostu wydrukować cokolwiek prosisz.

E.g.

@if (Team.Id == ViewBag.TeamId) 
{ 
    @:</div> 
    @:<div class="row"> 
    @:&nbsp; 
} 
0

Można również użyć @Html.Raw("YOUR HTML"); wewnątrz instrukcji if dodać kod HTML

Powiązane problemy