Sae*_*ati 206 asp.net-mvc razor asp.net-mvc-3
我需要创建一个只在一个cshtml文件中必需的函数.您可以将我的情况视为ASP.NET页面方法,它是在页面中实现的最小Web服务,因为它们的范围限定为一个页面.我知道HTML帮助器(扩展方法),但我的功能只需要一个cshtml文件.我不知道如何在视图中创建函数签名. 注意:我正在使用Razor模板引擎.
小智 393
为什么不在cshtml文件中声明该函数?
@functions{
public string GetSomeString(){
return string.Empty;
}
}
<h2>index</h2>
@GetSomeString()
Run Code Online (Sandbox Code Playgroud)
Dan*_*zzi 270
您可以使用@helper Razor指令:
@helper WelcomeMessage(string username)
{
<p>Welcome, @username.</p>
}
Run Code Online (Sandbox Code Playgroud)
然后你像这样调用它:
@WelcomeMessage("John Smith")
Run Code Online (Sandbox Code Playgroud)
Muh*_*han 25
如果您的方法不必返回html并且必须执行其他操作,那么您可以在Razor中使用lambda而不是helper方法
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
Func<int,int,int> Sum = (a, b) => a + b;
}
<h2>Index</h2>
@Sum(3,4)
Run Code Online (Sandbox Code Playgroud)
在 ASP.NET Core Razor Pages 中,您可以在函数中组合 C# 和 HTML:
@model PagerModel
@{
}
@functions
{
void PagerNumber(int pageNumber, int currentPage)
{
if (pageNumber == currentPage)
{
<span class="page-number-current">@pageNumber</span>
}
else
{
<a class="page-number-other" href="/table/@pageNumber">@pageNumber</a>
}
}
}
<p>@PagerNumber(1,2) @PagerNumber(2,2) @PagerNumber(3,2)</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123010 次 |
| 最近记录: |