Я пытаюсь написать javascript, смешанный с разметкой и методами в стиле бритвы, в файле .cshtml и отправить его в отдельный метод для последующего использования.
Мой .cshtml выглядит кое-чтокак это:
@{SomeClass.SaveForLater(@<script type="text/javascript">window.alert('@Model.SomeParamter')}</script>);
И внутри класса SomeClass:
public static void SaveForLater(HtmlString str) {
// will be using str.ToString() here and save the string output for use later on.
}
Но я получаю следующее сообщение об ошибке:CS1660: Невозможно преобразовать лямбда-выражение в тип «System.Web.HtmlString», поскольку оно не является типом делегата
Я использую неверный тип для аргумента или мне нужно переосмыслить всю концепцию?
Решение Благодаря SLaks ниже я закончил тем, что сделал это:
public static void SaveForLater<T>(Func<T, HelperResult> template, dynamic model)
{
// template(model).ToHtmlString()
}
Используя это так:
@{SomeClass.SaveForLater<SomeModel>(
@<script type="text/javascript">window.alert('@Model.SomeParamter')</script>,
Model
);