Мне нужно создать функцию, которая нужна только внутри одного файла cshtml. Вы можете представить мою ситуацию как методы страницы ASP.NET, которые являются минимальными веб-службами, реализованными на странице, поскольку они привязаны к одной странице. Я знаю о HTML-помощниках (методы расширения), но моя функция нужна только в одном файле cshtml. Я не знаю, как создать подпись функции внутри представления. Примечание. Я использую механизм шаблонов Razor.
Как создать функцию в шаблоне cshtml?
Ответ 1
Вы можете использовать директиву @helper Razor:
@helper WelcomeMessage(string username)
{
<p>Welcome, @username.</p>
}
Затем вы вызываете его следующим образом:
@WelcomeMessage("John Smith")
Ответ 2
Почему бы просто не объявить эту функцию внутри файла cshtml?
@functions{
public string GetSomeString(){
return string.Empty;
}
}
<h2>index</h2>
@GetSomeString()
Ответ 3
Если ваш метод не должен возвращать html и должен делать что-то еще, тогда вы можете использовать лямбда вместо вспомогательного метода в Razor
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
Func<int,int,int> Sum = (a, b) => a + b;
}
<h2>Index</h2>
@Sum(3,4)
Ответ 4
Взгляните на Помощники декларативной бритвы