2012-08-01 11 views
8

Si verificano problemi con la visualizzazione (piuttosto che la visualizzazione NON) di testo normale in un altro blocco.Come visualizzare testo in chiaro condizionale con Rasoio

if (Model.CareerFields != null && ViewBag.CFCount > 0) 
{ 
<h3>Careerfields Listing</h3> 

<table> 
    <tr> 
     <th></th> 
     <th>Careerfield Name</th> 
    </tr> 

    @foreach (var item in Model.CareerFields) 
    { 
     <tr> 
     <td> 
      @Html.ActionLink("Select", "Index", new { careerFieldID = item.CareerFieldId }) 
     </td> 
     <td> 
      @item.CareerFieldName 
     </td> 
     </tr> 
    } 
    </table> 
} 
else 
{ 
    No Careerfields associated with @ViewBag.SelectedDivisionTitle 
} 

I blocchi if funzionano correttamente. Il testo viene visualizzato solo se è vero. Tuttavia, il resto del testo di blocco viene visualizzato quando viene caricata la pagina, non se viene valutata solo come falsa.

Ho provato con

Hmtl.Raw("No Careerfields associated with ") 
<text>No Careerfields associated with @ViewBag.SelectedDivisionTitle</text> 
@:No Careerfields associated with @ViewBag.SelectedDivisionTitle 

ma rende comunque il testo in chiaro prima della valutazione.

Qualche suggerimento?

+0

Invece di utilizzare solo "else if" per risolvere il problema del display – swapneel

+0

Hai provato a utilizzare ? In questo modo: Nessun campo carriera associato a @ ViewBag.SelectedDivisionTitle user1304444

+0

@ user1304444 Sì, l'ho. Non funziona. – Erik

risposta

8

Metti il ​​tuo "testo normale" all'interno di un tag <span> nuda:

else 
{ 
    <span>No Careerfields associated with @ViewBag.SelectedDivisionTitle</span> 
} 

Il browser non dovrebbe renderlo speciale (a meno che non si dispone di css selezionando ogni arco) e vi aiuterà rasoio senso alla fine del C# e stampa il tuo HTML.

+0

È ancora in rendering. Nessun CSS sui tag di estensione: sto solo utilizzando il foglio di stile predefinito in questo momento creato con un'app MVC3. – Erik

2

Sembra che tu abbia dimenticato il segno @ prima dell'istruzione if. Prova questo:

@if (Model.CareerFields != null && ViewBag.CFCount > 0) 
{ 
    <h3>Careerfields Listing</h3> 

    <table> 
     <tr> 
      <th></th> 
      <th>Careerfield Name</th> 
     </tr> 

     @foreach (var item in Model.CareerFields) 
     { 
      <tr> 
       <td> 
        @Html.ActionLink("Select", "Index", new { careerFieldID = item.CareerFieldId }) 
       </td> 
       <td>@item.CareerFieldName</td> 
      </tr> 
     } 
    </table> 
} 
else 
{ 
    <text>No Careerfields associated with @ViewBag.SelectedDivisionTitle</text> 
} 
4

Il seguente codice ha funzionato perfettamente per me:

@if (false) { 
    <h3> 
     Careerfields Listing 
    </h3> 
    <table> 
     <tr> 
      <th> 
      </th> 
      <th> 
       Careerfield Name 
      </th> 
     </tr> 
    </table> 
} 
else 
{ 
    @:No Careerfields associated with @ViewBag.SelectedDivisionTitle 
} 

Si può vedere che il contenuto di se sono resi quando si cambia condizione vera.

Problemi correlati