Napotkałem ten problem również podczas przenoszenia naszego projektu do nowego silnika widoku Razor. Podejście, które obrałem, było nieco inne, ponieważ musieliśmy generować dane JSON z C # i chcieliśmy je wyprowadzić po załadowaniu strony.
Ostatecznie zaimplementowałem RawView, który był paralelą z View w plikach cshtml. Zasadniczo, aby uzyskać nieprzetworzony ciąg,
@(new HtmlString(View.Foo))
// became
@RawView.Foo
Wymaga to kilku zmian w układzie projektu, dlatego właśnie napisałem o tym tutaj wpis na blogu . Krótko mówiąc, wymagało to zduplikowanej implementacji DynamicViewDataDictionary MVC i nowego WebViewPage, który zawiera RawView. Poszedłem również do przodu i zaimplementowałem operator indeksu w RawView, aby umożliwić
@RawView["Foo"]
Nie ma szans, że ktoś będzie potrzebował pętli danych z listą kluczy.
Czytając komentarz Anurse, prawdopodobnie byłoby lepiej, gdybym nazwał to literałem zamiast RawView.
new HtmlString()
w MVC 3, ponieważ ten typ to .NET 4.