2011-07-12 3 views
0

Je veux définir l'attribut basé sur une valeur bool dans ma page vue comme:Définition des attributs dans ASP.Net MVC3

  @{ 
       object displayMode = (Model.PostCodeEnabled) ? null : new { disabled = "disabled", style = "width:200px;" }; 
       @Html.TextBox("PostalCode", "", displayMode) 
      } 

Le code ci-dessus fonctionne bien, mais si je veux appliquer largeur 200px dans les deux cas, le code suivant ne fonctionne pas:

  @{ 
       object displayMode = (Model.PostCodeEnabled) ? new { style = "width:200px;" }: new { disabled = "disabled", style = "width:200px;" }; 
       @Html.TextBox("PostalCode", "", displayMode) 
      } 

aussi je m peu confus quand ajouter symbole @ avant l'attribut qui est la différence entre le nouveau {disabled = « désactivé »} & nouveau {@ désactivé = "désactivé"}.

Répondre

0

Le problème n'est pas le signe @ - votre problème est que vous ne pouvez pas faire de conversion de type implicite entre deux types anonymes.

Cela signifie que vous devez faire un « bon » instruction if, comme ceci:

@{ 
    object displayMode = new { @disabled = "disabled", @style = "width:200px;" }; 

    if (Model.PostCodeEnabled) 
    { 
     displayMode = new { @style = "width:200px;" }; 
    } 

    @Html.TextBox("PostalCode", "", displayMode) 
} 

Pour en revenir aux signes @ - vous devez toujours inclure lors de la création d'un type anonyme à utiliser comme Attributs HTML

+0

Désolé, le code ci-dessus ne fonctionne pas. Au moins pouvez-vous me dire quand ajouter @ symbole avant l'attribut qui est la différence entre nouveau {disabled = "désactivé"} & new {@disabled = "désactivé"}. – Biki

+1

J'ai mis à jour ma réponse. Devrait fonctionner maintenant. – MartinHN

+0

Très Vrai Martin. Lorsque j'ai utilisé des instructions if correctes, cela commence à fonctionner. Pourtant, je ne suis pas sûr de la partie @. Quant à moi si je mets @ avant attribut de style, son ne fonctionne pas. Mais uve @ utilisé dans le code ci-dessus. Je suppose que le style n'est pas un type anonyme? – Biki

Questions connexes