Dav*_*tka 294
单独留下关于何时(如果有的话)应该做的任何争论,@ functions是你如何做到的.
@functions {
// Add code here.
}
Run Code Online (Sandbox Code Playgroud)
Dar*_*rov 187
你的意思是内联助手?
@helper SayHello(string name)
{
<div>Hello @name</div>
}
@SayHello("John")
Run Code Online (Sandbox Code Playgroud)
gdm*_*hon 29
在剃刀内定义一个函数非常简单.
@functions {
public static HtmlString OrderedList(IEnumerable<string> items)
{ }
}
Run Code Online (Sandbox Code Playgroud)
所以你可以在任何地方调用该函数.喜欢
@Functions.OrderedList(new[] { "Blue", "Red", "Green" })
Run Code Online (Sandbox Code Playgroud)
但是,同样的工作也可以通过helper.举个例子
@helper OrderedList(IEnumerable<string> items){
<ol>
@foreach(var item in items){
<li>@item</li>
}
</ol>
}
Run Code Online (Sandbox Code Playgroud)
那么区别是什么呢??根据之前的帖子,@ helpers和@functions共享一个共同点 - 它们使代码重用成为网页中的一种可能性.他们还有另一个共同点 - 乍一看它们看起来是一样的,这可能会对他们的角色产生一些混淆.但是,它们并不相同.本质上,帮助器是作为方法公开的可重用的Razor sytnax片段,用于将HTML呈现给浏览器,而函数是可以从Web页面应用程序中的任何位置调用的静态实用程序方法.帮助器的返回类型始终是HelperResult,而函数的返回类型是您想要的任何类型.
Bok*_*kos 12
您也可以像这样使用Func
@{
var getStyle = new Func<int, int, string>((width, margin) => string.Format("width: {0}px; margin: {1}px;", width, margin));
}
<div style="@getStyle(50, 2)"></div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86378 次 |
| 最近记录: |