Html.BeginForm () фактически не захватывает содержимое блока using
.Он просто окружает его тегом формы, записывая открывающий тег, а затем закрывающий тег в ответ на метод Dispose
от IDisposable
.
Пожалуйста, см. Реализацию Html.BeginForm()
здесь и метод Dispose здесь .
Если вы действительно хотите захватить содержимое блока, вы можете написать вспомогательный метод, который принимает Шаблон Razor в качестве параметра.
Используя следующий метод:
public static class HtmlHelperExtensions
{
public static string CoffeeScript(this HtmlHelper htmlHelper, Func<HelperResult> template)
{
// Then you can access the contents of the block here
string contents = template().ToHtmlString();
return DoSomething(string);
}
}
Вы можете использовать его в своем представлении Razor следующим образом:
@Html.CoffeeScript(@<text>
Anything can go here
</text>;);
ОБНОВЛЕНИЕ: Просто для уточнения, учитывая, что ваш метод расширения относится к пространству имен MyApplication.Extensions
, вы должны добавить следующее в верхней части вашего представления:
@using MyApplication.Extensions;