2012-08-01 18 views
8

Tengo problemas para mostrar (y NO mostrar) texto sin formato en un bloque else.Cómo mostrar texto simple condicional con Navaja

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 
} 

Los bloques if funcionan bien. El texto solo se muestra cuando es verdadero. Sin embargo, el texto del bloque else se representa cuando se carga la página, no si se evalúa como falso solo.

He intentado usar

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

Pero todavía hace que el texto en claro antes de la evaluación.

¿Alguna sugerencia?

+0

En lugar de usar "else if" para resolver su problema de visualización – swapneel

+0

¿Ha intentado usar ? de esta manera: Sin Careerfields asociados con @ ViewBag.SelectedDivisionTitle user1304444

+0

@ user1304444 Sí, tengo. No funciona. – Erik

Respuesta

8

Ponga su "texto plano" dentro de un <span> Tag desnudo:

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

El navegador no debería hacerla especial (a menos que tenga CSS seleccionando cada tramo) y que va a ayudar sentido de afeitar final de C# e imprime tu HTML.

+0

Todavía está representando. Sin CSS en las etiquetas de tramo: solo estoy usando la hoja de estilos predeterminada ahora que se crea con una aplicación MVC3. – Erik

2

Parece que ha olvidado el signo @ antes de su declaración if. Prueba esto:

@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

El siguiente código funcionó a la perfección para mí:

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

Se puede ver que el contenido de si se prestan cuando se cambia la condición de cierto.

Cuestiones relacionadas