gpt4 book ai didi

c# - 在 MVC 部分页面中无法访问 Html 扩展方法

转载 作者:行者123 更新时间:2023-11-30 22:21:57 24 4
gpt4 key购买 nike

您好,我正在尝试在 MVC 部分页面中创建声明性 Html 帮助器方法,一切正常。但是当我想使用内置的Html扩展方法时,我看到没有扩展方法。我还检查了 View 的 webconfig 文件以添加 System.Web.Mvc.Html 命名空间。一切正常,但我不知道为什么它不起作用。

任何建议都会有所帮助。

编辑:这是我的代码:

@using WebVoter.ViewModel
@using System.Web.Mvc.Html

@helper GetVoteList(IList<VoteQuestionViewModel> voteQuestionList)
{

<div class="head-panel">
@*For example ActionLink is not accessible here*@
@Html.ActionLink(....);

</div>
}

最佳答案

在 Razor 助手内部,您没有对 HtmlHelper 的引用。您需要将其作为调用代码中的参数传递:

@helper GetVoteList(HtmlHelper html, IList<VoteQuestionViewModel> voteQuestionList)
{
<div class="head-panel">
@html.ActionLink(....)
</div>
}

当你想从某个 View 调用这个助手时,你需要传递引用:

@GetVoteList(Html, ...)

就我个人而言,我一直更喜欢为 HtmlHelper 类编写扩展方法,而不是使用那些内联 Razor 帮助程序。然后它们将被用作标准助手:

@Html.GetVoteList(...)

优点是您不再受限于 Razor。扩展方法与 View 引擎无关,并且由于它们是 C# 代码,所以转换到其他 View 引擎时不那么痛苦。另一个好处是它们可以进行单元测试。

关于c# - 在 MVC 部分页面中无法访问 Html 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052182/

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