gpt4 book ai didi

asp.net-mvc - Razor 功能: What is the difference between @helper and @functions

转载 作者:行者123 更新时间:2023-12-03 13:54:48 25 4
gpt4 key购买 nike

关于asp.net mvc中的 Razor 功能的几个问题。

1)看到下面的代码

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

然后像这样调用它: @WelcomeMessage("John Smith")
@functions{
public string GetSomeString(){
return string.Empty;
}
}

看到有两个 Razor 功能。第一个 @helper用于声明 Razor 功能,第二个@functions用于声明 Razor 功能。所以告诉我 @helper and @functions有什么区别?

2)我们可以在.cs代码中声明razor函数吗...如果是,那么我们需要遵循任何约定吗?

3)我们可以从razor函数返回整数吗
@helper Calculator(int a, int b)
{
@{
var sum = a + b;
}
<b>@sum</b>
}

@Calculator(1, 2)

我们可以将sum返回到其调用环境吗?

最佳答案

两者都是出于可重用性的目的。

但是,当不需要返回html时使用@functions,而我们只想进行一些计算或一些业务逻辑,这意味着我们只需要编写 C#代码即可。

对于@functions,当我们不想在 View 中返回html时,可以使用它们。如果我们想从@functions中提取Html,则需要从中专门返回HtmlString而不是String;对于@functions,如果要返回HtmlString,我们还需要指定并包括 namespace :

@using System.Web.Mvc;
@functions {

public static HtmlString WelcomeMessage(string username)
{

return new HtmlString($"<p>Welcome, {username}.</p>");
}
}

当我们要创建html并使用某种逻辑将其呈现时, @helper很有用,这意味着我们需要编写 Razor 代码。

对于 @helper,当我们定义的方法需要与HTML混合使用并且要返回一些html时,将使用它们。
@helper{

public WelcomeMessage(string username)
{

<p>Welcome, @username.</p>;
}
}

请阅读以下精彩文章,其中详细说明了两者的区别:

https://www.mikesdotnetting.com/article/173/the-difference-between-helpers-and-functions-in-webmatrix

关于asp.net-mvc - Razor 功能: What is the difference between @helper and @functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48681429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com