Как создать функцию в шаблоне cshtml?

Мне нужно создать функцию, которая необходима только в одном файле cshtml. Вы можете думать о моей ситуации как ASP.NET методы страницы, которые являются минимальными веб-службами, реализованными на странице, поскольку они ограничены одной страницей. Я знаю о HTML-помощниках (методах расширения), но моя функция нужна только в одном файле cshtml. Я не знаю как создать сигнатуру функции в представлении. Примечание: Я использую движок шаблонов Razor.

5 ответов


вы можете использовать директиву @helper Razor:

@helper WelcomeMessage(string username)
{
    <p>Welcome, @username.</p>
}

затем вы вызываете его следующим образом:

@WelcomeMessage("John Smith")

почему бы просто не объявить эту функцию внутри файла cshtml?

@functions{
    public string GetSomeString(){
        return string.Empty;
    }
}

<h2>index</h2>
@GetSomeString()

Если ваш метод не должен возвращать 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)


использовать

 @functions{

private string GetUrl(string destination)
{}

затем вы можете вызвать функцию, как-