vah*_*eds 3 partial-views tag-helpers asp.net-core
我是 ASP.NET Core 的新手。我刚刚发现了 TagHelpers ,正如我可能明白的那样,理论上我们应该能够用tag helpers替换部分视图。
除此之外,TagHelper可以接受输入但PartialView不接受。
我觉得对吗?还是误会?任何人都可以清楚地解释其中的区别吗?
提前致谢!
这是针对asp.net core 2.1+
如果我正确理解你的问题,你可以用你自己的 TagHelpers 替换你所有的 HtmlHelper 部分视图,但你已经能够用 HtmlHelpers 来做到这一点,所以它不是什么新鲜事。
但是,之间的差异HtmlHelpers,TagHelpers以及部分景色。
局部视图是一个 Razor 标记文件 (.cshtml),它在另一个标记文件的呈现输出中呈现 HTML 输出。例如_partial.cshtml。
MVC 框架引入了 HtmlHelpers,以便能够呈现 html 服务器端。通过@剃刀视图中的角色轻松区分。
@await Html.PartialAsync("_partial.cshtml", Model.Contact)
Run Code Online (Sandbox Code Playgroud)
除此之外,TagHelper 可以接受输入但 PartialView 不能。
in 的第二个参数PartialAsync允许输入。
使用 asp.net-core,TagHelpers 是另一种能够通过在 razor 视图中使用标签和属性来呈现服务器端 html 的方法。除了对 html 友好的视图之外,它还提供了较少的 html 抽象。在下面的代码中,我使用了 Partial TagHelper,其中name属性定义了视图的路径或名称,而for属性分配了将评估的模型表达式 (@Model)。这意味着您不需要使用for="@Model.Contact",只需使用for="Contact".
<partial name="_partial" for="Contact" />
Run Code Online (Sandbox Code Playgroud)
您还可以使用模型属性,它只是在实例化时将模型传递给局部视图。
<partial name="_partial" model='new Contact { Id = 1, Name = "Nick" }' />
Run Code Online (Sandbox Code Playgroud)
此外,如果您查看 HtmlHelper 的 asp.net-core github
并将其与 TagHelper 进行比较
两者实际上都在调用和IView.RenderAsync()传递ViewContext包含局部视图的 a 。所以他们实际上在后面的代码中做同样的事情,除了它操纵 html 的方式。
TagHelper,您可以使用model或for向部分提供数据,但不能同时使用。希望这可以帮助
| 归档时间: |
|
| 查看次数: |
1317 次 |
| 最近记录: |