Использование с универсальными методами в бритвенном представлении

Есть ли способ сделать с помощью оператор работает с универсальными методами в бритвенных представлениях? Например, я хотел бы, чтобы фрагмент веб-формы

<% using(Html.BeginForm<Controller>(c => c.Method()))
   { %>
       Some code
<% } %>

преобразовался в razor, как этот

@using(Html.BeginForm<Controller>(c => c.Method()))
{
    Some code
}

, но это не работает, поскольку razor интерпретирует как тег HTML. Добавление круглых скобок тоже не работает, так как тогда razor не включает фигурные скобки, которые начинаются и заканчиваются BeginForm . Ниже приведены различные подходы, которые я пробовал, и я не могу больше придумать.

@using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c# to '<Controller>'
{                                                   // interpreted as HTML
    Some code                                       // interpreted as HTML
}                                                   // interpreted as HTML

@(using(Html.BeginForm<Controller>(c => c.Method()))) // Interpreted as c#
{                                                     // interpreted as HTML
    Some code                                         // interpreted as HTML
}                                                     // interpreted as HTML

@{using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c#
    {                                                // interpreted as c#
        Some code                                    // interpreted as c#
    }                                                // interpreted as c#
}                                                    // interpreted as c#

@(using(Html.BeginForm<Controller>(c => c.Method()))) // Interpreted as c#
@{                                                    // interpreted as c#
        Some code                                     // interpreted as c#
}                                                     // interpreted as c#    

Кто-нибудь знает, как это сделать?

Обновление : Кажется, третий способ, описанный выше, - это способ сделать этот. Очевидно, что Razor работает следующим образом:

@{using(Html.BeginForm<Controller>(c => c.Method())) // Interpreted as c#
    {                                                // interpreted as c#
        <p>                                          // interpreted as HTML
        Some text                                    // interpreted as HTML
        @Code                                        // interpreted as c#
        </p>                                         // interpreted as HTML
    }                                                // interpreted as c#
}                                                    // interpreted as c#

Не самый очевидный способ делать что-то, но он работает.

Обновление 2 : Razor, вероятно, в какой-то момент был обновлен, потому что теперь вариант № 1, указанный выше, работает, как ожидалось.

@using(Html.BeginForm<Controller>(c => c.Method()))
{
    Some code
} 
5
задан nforss 5 November 2014 в 08:59
поделиться