Есть ли способ заставить оператор using
работать с универсальными методами в видах бритвы? Например, я хотел бы получить фрагмент веб-формы
<% using(Html.BeginForm<Controller>(c => c.Method()))
{ %>
Some code
<% } %>
преобразован в бритву, как это
@using(Html.BeginForm<Controller>(c => c.Method()))
{
Some code
}
но это не работает, поскольку бритва интерпретирует <Controller>
как тег HTML. Добавление скобок также не работает, так как бритва не включает фигурные скобки, которые начинаются и заканчиваются 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#
Айноне знает, как это сделать?
Обновление : кажется, третий способ выше - это способ сделать это. Бритва, очевидно, работает так:
@{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 : Бритва, вероятно, была обновлена в какой-то момент, потому что теперь опция # 1 выше работает, как и ожидалось.
@using(Html.BeginForm<Controller>(c => c.Method()))
{
Some code
}