2017-12-28 5 views
0

Drucken Es könnte albern sein zu fragen, aber immer noch ich nicht in der Lage, es richtig google. Unten ist mein Code "ausgewählt" in Hinblick auf Druck:C# wie Hard-Code-Wert in Sicht

<option value="0" @if(ViewBag.country == 0) { @:selected } >NO</option> 

es mir Fehler wie

Parser Error Message: The if block is missing a closing "}" character. Make sure you have a matching "}" character for all the "{" characters within this block, and that none of the "}" characters are being interpreted as markup. 

bezeichnet geben: https://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx/

+0

Warum können Sie den ausgewählten Parameter von mvc dropdownList nicht verwenden? –

Antwort

2

Sie können die Verwendung: Notation für Inline-Code

<option value="0" @(ViewBag.country == 0 ? "selected" : string.Empty)>NO</option>

+0

Fehler erhalten "Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Operator '==' kann nicht auf Operanden vom Typ 'string' und 'int'" –

+0

my bad angewendet werden. Es funktioniert. Danke für Ihre Hilfe –

1

Es kann wie dieser

Erstellen Sie den Wert wie dieser

@{ var selected = ViewBag.country == 0 ? "selected" : ""; } 

und erstellen Sie dann die Möglichkeit, wie in this Beitrag unten

<option value="0" @selected>NO</option> 
0

Wie erwähnt durchgeführt werden.

Um den Anfang einer Inhaltszeile explizit anzugeben, indem die @: Zeichenfolge in einem Codeblock verwendet wird.

Um Ihren Code arbeiten schließen schließen geschweiften Klammern } zur nächsten Zeile.

<option value="0" @if (ViewBag.country == 0) { @: selected 
     }> 
    NO 
</option> 

Andere Optionen unter Verwendung eines <text> element:

<option value="0" @if (ViewBag.country == 0) { <text> selected</text> }>NO</option> 

oder

<option value="0" @{if (ViewBag.country == 0) { <text> selected</text> }}>NO</option> 

Referenzen:

1. Shorten-this-if-statement-in-razor-to-one-line

2. One-line-if-statement-with-razor-and-net