问题标签 [asp.net-core-tag-helpers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2413 浏览

c# - ViewImports 注册标签助手不起作用

我在 ASP.NET Core 2.0 中创建了一个 Tag Helper。

如果我在页面顶部包含以下行(.cshtml),它运行良好

如果我删除此行并将其放入 _ViewImports.cshtml 标记帮助程序不再起作用。

程序集名称为 DanLife。

Web 应用程序使用区域。

我想知道为什么我的标签助手在 _ViewImports.cshtml 中注册时没有注册在我的视图中使用。

0 投票
1 回答
2405 浏览

c# - TagHelper 未呈现

我对 .NET Core 2.0 中的 TagHelpers 有一个有趣的问题。原来的助手工作似乎是正确的。但海关不行。我编写了受代码启发的原始图像助手(https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.TagHelpers/ImageTagHelper.cs),但仍然无法正常工作。

这是我的帮手:

在 _ViewImports.cshtml 我有这个:

剃刀视图看起来像这样:

在 csproj 我有部门:

这个包应该有 TagHelpers 参考: https ://www.nuget.org/packages/Microsoft.AspNetCore.all

页面上的最终结果如下所示:

我没有错误或异常,只是没有呈现。

编辑

这是一个没有工作<email>助手的单独项目。 https://github.com/petrck/dotnet-taghelper-sample

0 投票
1 回答
1046 浏览

asp.net-core - 从 TagHelper 调用控制器操作

我正在使用一个简单的 CMS 来构建一个网站,并且需要在我的页面中注入“组件”。目前,我正在以一种相当简单的方式渲染组件,如下所示:

<latest-blog-posts limit="3" order-by="date asc"/>

然后我想使用TagHelpers来填写真实的内容。有没有办法在 ASP.NET Core 中调用控制器操作并将调用标记替换为结果视图。我的感觉是我需要考虑 using output.WriteTo(TextWriter writer, HtmlEncoder encoder),但我一直坚持如何将 Action 的响应反馈给作者。

0 投票
1 回答
422 浏览

c# - 自托管 ASP.NET Core 2.0:TagHelper 不起作用

我有 ASP.NET Core 2.0 网站,它托管在 .NET Core 控制台/服务中。我已经实现了一个简单的自定义 TagHelper。当我直接从 VS2017 启动 ASP.NET Core 网站时,TagHelper 工作正常。当我启动托管了 asp.net 页面的 .NET Core 控制台主机时,标签助手不起作用。

我尝试在 _ViewImports.cshtml 中注册 TagHelper,也直接在视图中注册为 self(Home/Index)。

我的自定义 TagHelper:

_ViewImports.cshtml

VS2017 中的 TimeTagHelper 智能感知工作正常: Index.cshtml 中的 TimeTagHelper

代码在GitHub 上。TagHelper 在 SelfHosted.Website 中实现并在 /Home/Index 中使用。当 SelfHosted.Website 直接启动时,它可以完美运行。但它不起作用,当我从 SelfHostes.Console 启动网站时。

0 投票
1 回答
458 浏览

asp.net-mvc - 无法使用 Select TagHelper 创建下拉列表,但脚手架可以

我使用脚手架获得了一个简单的 MVC 页面,它从我的模型中生成了如下代码:

然后我搭建了产生如下标记的视图:

渲染时,它会从我的数据库中与我的客户一起生成一个下拉控件。正是我想要的,我什至不必编写一行代码。

但现在我想使用过滤数据在更自定义的视图上创建一个下拉列表。无论我做什么,它都会呈现为我绝对不想要的多选。

我想使用视图模型,但我也尝试过 ViewData,因为这是脚手架使用的:

到目前为止,我的视图模型非常简单:

我尝试了不同的IEnumerable类型,因为这是大多数教程使用的。但是脚手架使用SelectList这个 SO Q&A以及本教程都说这IEnumerable将创建一个多选并且似乎建议使用SelectList.

但是有了这个标记,我能得到的只是多选:

我看不出脚手架在做什么和我在做什么之间有什么区别。但是渲染的输出完全不同,不是我想要的。那么我在这里错过了什么?

0 投票
1 回答
1152 浏览

asp.net - ASP.NET Core - TagHelper、部分视图和属性名称冲突

在 ASP.NET Core MVC 项目中,假设我有两个局部视图_viewA_viewB两个关联模型ModelAModelB.

ModelA并说两者ModelB都有一个名为MyProperty. 然后在两者中_viewA我都_viewB使用asp-for="MyProperty".

我的问题是我的页面以两个具有相同 id 的 html 元素结束。
我怎样才能避免这种情况?

请注意,我不想重命名 MyProperty,因为我的模型不应该关心 UI 约束。

0 投票
0 回答
127 浏览

c# - 共享同一模型的复杂 .Net Core Tag Helpers(独立于 @Model)

使用 .Net Framework 的助手,我可以做这样的事情:

我可以使用 lambda 表达式访问“MyModel”的属性,以便基于这些属性生成复杂的 html 结构或表。

是否可以在 .Net Core 中做类似的事情,以便我可以使用这些结构?

由于我无权访问通用类型 tagHelpers,因此我没有设法做类似的事情。现在我得到的是这样的:

我在哪里使用字符串来捕获“MyType”的属性名称,但如果我使用这种方法,显然我不能使用智能感知。

我还尝试使用模型表达式捕获属性名称,因此前端的代码如下所示。

但是我没有设法捕获到“mySubProp”的整个路线,这将是一个类似于“myProp1.mySubProp”的字符串。

关于如何干净地实现这种东西的任何想法?

0 投票
1 回答
451 浏览

c# - 如何更改 TagHelpers 中 ModelExpression 的 Classtype?

我想创建一个标签助手,它接受特定模型的一些属性名称。

默认情况下,上面For绑定到ViewModel. 是否有可能将其绑定到另一个类?

我首先尝试通过带有 的泛型类型参数来做到这一点DataTableColumnTagHelper<TModel>,但这<data-table-column<SomeModel>>不是有效的语法。

我目前有它以这种方式工作:

标签助手:

查看模型

看法:

我的目标是删除该TableItem属性,因为它只是一个虚拟的ModelExpression工作。

有什么建议么?

0 投票
1 回答
1412 浏览

c# - Tag helper `Attributes` alias

I couldn't find any way to give multiple names to a single tag helper (alias) in netcore20 to the following tag helper class definition

I would like to be able to refer to my tag helper using both of the following syntaxes

I did some research and found posts such as this one on SO but makes both tag need (an AND clause, basically).

I still tried defining my Attributes property with "idi,in-dom-if" as well as "[idi],[in-dom-if]" the last one actually gave me an error : Invalid tag helper bound property

Admin.TagHelpers.InDomIfTagHelper.InDomIf'. Tag helpers cannot bind to HTML attributes with name '[idi],[in-dom-if]' because the name contains a ']' character.

I also tried this one "[name=idi],[name=in-dom-if]" and I added quotes around the tag names too ... none of this worked.

Since I can't seem to find much info about defining tag helper attributes names using an OR clause I wonder if it is even possible ...

I would like to avoid defining twice the same logic in two different classes just so they can have the same name.

Is this even possible ? If it is, how can I achieve this ?

0 投票
1 回答
183 浏览

asp.net - ASP.Net Core 锚标记助手作为 RESTful 链接

我正在使用锚标签助手,它在大多数情况下都可以正常工作。我想清理正在生成的特定 URL,我的标签看起来像这样(请注意,在这种情况下 type 比 id 更具体,并不重要):

我想得到一个如下所示的 URL:

但相反我得到

有没有办法以 RESTful 格式而不是 GET 字符串获取“附加”参数?我总是可以以更传统的方式修改路由或 URL,但我很好奇我是否可以做到这一点。