我是ASP.NET Core的新手。我刚刚发现了TagHelpers,并且我可能会明白,从理论上讲,我们应该可以将部分视图替换为标记帮助器。
除此之外,def binaryadd(one, other):
return not bool(one & other) and one | other
可以接受输入,但TagHelper
不能接受。
我认为正确吗?还是误会?谁能清楚地说明差异?
谢谢!
答案 0 :(得分:2)
这是用于asp.net core 2.1 +
如果我正确理解了您的问题,则可以用自己的TagHelpers替换所有HtmlHelper部分视图,但是您已经能够使用HtmlHelpers做到这一点,所以这并不是什么新鲜事。
但是,HtmlHelpers
,TagHelpers
和部分视图之间是有区别的。
局部视图是Razor标记文件(.cshtml),用于在另一个标记文件的呈现输出中呈现HTML输出。例如_partial.cshtml
。
HtmlHelpers与MVC框架一起引入,以便能够呈现html服务器端。在剃刀视图中可以通过@
字符轻松区分。
@await Html.PartialAsync("_partial.cshtml", Model.Contact)
除此之外,TagHelper可以接受输入,但PartialView不能接受。
PartialAsync
中的第二个参数允许输入。
使用asp.net-core,TagHelpers是另一种通过在剃刀视图中使用标签和属性来呈现服务器端html的方法。除了html友好视图之外,它还提供了更少的html抽象。在下面的代码中,我正在使用Partial TagHelper,其中 name 属性定义视图的路径或名称,而 for 属性指定将要评估的模型表达式(@模型)。这意味着您无需使用for="@Model.Contact"
,而只需使用for="Contact"
。
<partial name="_partial" for="Contact" />
您还可以使用 model 属性,该属性仅在实例化时将模型传递给局部视图。
<partial name="_partial" model='new Contact { Id = 1, Name = "Nick" }' />
此外,如果您查看HtmlHelper的asp.net-core github
并将其与TagHelper进行比较
两者实际上都是在调用IView.RenderAsync()
并传入ViewContext
,其中包括部分视图。因此,除了它们操作html的方式外,他们实际上在后面的代码中执行相同的操作。
TagHelper
中,您可以使用model
或for
来为部分数据提供数据,但不能同时为这两者提供数据。希望这会有所帮助