2010-11-11 22 views
22

Also, einfache Frage wirklich. :)ASP.NET MVC 3 Razor Syntax - Casting

Ich hatte diesen folgenden Code mit ASPX Ansicht Motor:

<strong><%: ((City)Model.Location).Name %></strong> 

Welche Los Angeles

Wenn ich dies mit Razor Ansicht Motor tun macht:

<strong>@((City)Model.Location).Name</strong> 
          ^
          | 
syntax highlighting stops here 

Es macht dies:

(wirklich großen Objektnamen .ToString werden muss) .Name

also die Markierung schneidet bei Ort aus), und es ist die Behandlung des .Name Code ich habe (Das ist eine Eigenschaft auf einem City Objekt) als reines HTML.

Warum wird das ) als das Ende des Razor-Codeblocks betrachtet?

Irgendwelche Ideen?

Auch - gibt es eine Razor Referenz, die alle Syntax/Keywords hat? (Ich brauchte eine Weile, um herauszufinden, dass <% Import Namespace@using mit Razor ist).

Danke Jungs!

+2

@Downvoter - Pflege zu erklären, warum? – RPM1984

Antwort

40

Funktioniert <strong>@(((City)Model.Location).Name)</strong>? Ich denke, es ist der Gedanke, dass der in @() enthaltene Ausdruck geschlossen ist.

+0

Haha, ja das funktioniert. Prost. Fügen Sie im Zweifelsfall eine weitere Klammer hinzu. :) Akzeptiert Ihre Antwort in 7 Minuten. :) – RPM1984

+0

Soweit Docs gehen, habe ich noch nichts offizielles gesehen. The Gus Blog ist wahrscheinlich der beste Ort derzeit http://weblogs.asp.net/scottgu/archive/2010/10/19/asp-net-mvc-3-new-model-directive-support-in-razor.aspx –

+0

Ja, lies das. Ja, wir brauchen wirklich eine definitive Quelle. Ich habe im Grunde die @ using-Anweisung erraten. :) – RPM1984

10

Auch für etwas angenehmeren Lesen ...

<strong>@((Model.Location as City).Name)</strong>