Есть ли способ сделать с помощью
оператор работает с универсальными методами в бритвенных представлениях? Например, я хотел бы, чтобы фрагмент веб-формы
<% 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
}