我正在学习服务器端。开拓者。
我已经阅读了一些项目的代码,并发现了一些使用的代码:
@{
}
和一些使用的东西:
@code{
}
和其他使用:
@function{
}
标记代码块。
我想知道两者之间的区别。谢谢。
答案 0 :(得分:5)
@
用于指令
@code{ }
[2]应该被使用。 @function{ }
[3]在使用方法的情况下仍然有效,在当前版本中不建议使用。
[2] https://docs.microsoft.com/vi-vn/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#code
[3] https://docs.microsoft.com/vi-vn/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#functions
查看所有案例的文档https://docs.microsoft.com/vi-vn/aspnet/core/mvc/views/razor?view=aspnetcore-3.0#functions
答案 1 :(得分:0)
@{ }
您不能在@{} 下使用function 或set get 属性,而只能使用声明。例如:
@{
DateTime today = DateTime.Now;
}
但是下面的代码会显示错误,因为我在这里使用了函数:
@{
public DateTime GetDate()
{
return DateTime.Now;
}
}
@代码{ }
您可以在 @code {} 下编写任何 C# 代码,例如:
@code{
[Parameter]
public Guid id { get; set; }
AccessoryDto accessory;
protected override Task OnInitializedAsync()
{
if (id == Guid.Empty)
accessory = new AccessoryDto();
else
accessory = GetAccessory(id);
return Task.FromResult(accessory);
}
void cancel()
{
NavigationManager.NavigateTo("/accessories");
}
}
@函数{ }
@function 与@code 做同样的事情,但现在@code 被推荐使用。
除此之外,您还可以使用@符号来使用条件、循环等。例如:
@if (id == null)
{
<h1>Create</h1>
}
else
{
<h1>Edit</h1>
}
和
<tbody>
@foreach (var accessory in Accessories)
{
<tr>
<td>@accessory.Name</td>
<td>@accessory.Description</td>
<td>
<a href='/editaccessory/@accessory.Id'>Edit</a> |
<a href='/delete/@accessory.Id'>Delete</a>
</td>
</tr>
}
</tbody>
此外,您可以@()进行表达。例如:
<a href="@($"employee/{employeeId}")">View</a>