问题标签 [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 回答
10827 浏览

c# - 在 MVC 6 中,如何在视图中编写复选框列表并将选中的值传递给控制器​​?

抱歉,我的大部分搜索都将我带到了旧的 MVC 代码。任何帮助将不胜感激。

在带有标签助手的 MVC 6 中,如何编写一组复选框:

  • 对标签使用标签助手,因此单击它将切换选中的值
  • 将选中的值保存(绑定?)到 IsOptionSelected 属性
  • 单击提交后将这些检查值传递回控制器

?

我能够正确显示带有标签的复选框,但我不知道如何通过模型将检查的值传递回控制器。现在,IsOptionSelected 值返回为 false。

我还能够使标签的 html 助手工作,但不能使标签助手工作。我可能也把这些都编码错了,所以任何提示都会有所帮助!

这是我到目前为止所拥有的:

展示:

电话选项复选框

实体:

模型:

存储库:

看法:

提前致谢!

0 投票
1 回答
1295 浏览

asp.net-core - Mvc 6 taghelper asp-action路由不起作用

我正在使用 Mvc 6 中的区域并尝试路由到每个特定区域。例如我有这个:

我的控制器外观装饰有 Area 和 route 属性,如下所示:

然后,我定义了两个 HTTPGET 方法,如下所示:

最后我的表格是这样的:

当我尝试发布表单时,它会抛出以下内容:

AmbiguousActionException:匹配多个操作。以下操作匹配路由数据并满足所有约束:

Areas.Test.Controllers.TestController.Index

Areas.Test.Controllers.TestController.Create

当我在 asp-action 中定义它时,您会认为它会绑定到我的 Create 方法,但是当我检查表单的呈现标记时,它看起来像这样:

我的方法 Create 没有被处理,它只呈现测试/测试(区域/控制器)。

我也尝试过装饰我的方法,无论有[Route("Create")]没有[HttpGet("Create")]结果。

我在这里错过了什么明显的东西吗?

0 投票
1 回答
915 浏览

asp.net-core-mvc - 如何从 MVC 6 TagHelper 类访问会话和其他网络上下文?

我需要调用一些控制器/操作方法或至少调用我自己的帮助方法,这些方法将使用会话变量。我如何从 TagHelper 的 Process 方法中执行此操作

0 投票
3 回答
7494 浏览

asp.net-core - 带两个参数的 MVC6 属性路由

我已经环顾四周,没有任何与 MVC6 taghelper 锚标记相关的内容与具有可满足多个参数的替代 [HttpGet] 方法有关。

当然,您可以向 MVC6 锚标记助手添加多个参数,但是如何使用属性路由处理带有两个参数的第二个选项...

我有两个 [HttpGet] IactionResult 方法:

我认为尝试采用第二种方法:

呈现为:

或者

IT 从不采用第二种方法。

我需要做什么才能使用 MVC6 锚 taghelper 使用带有两个参数的第二个 [HttpGet] 方法?

编辑

另外,您如何处理分隔路由属性中两个参数的 & 符号...

0 投票
1 回答
693 浏览

c# - TagHelper 从 ForExpression 获取 MaxLengthAttribute 属性

如何从 TagHelper ModelExpression 中获取 MaxLength 属性?

我曾经能够在 MVC 5 中做到这一点

我需要获取模型上的 MaxLength 属性 - 示例:

TagHelper 确实公开了 ModelExpression.Metadata。DisplayName属性和其他属性,但不是 MaxLength 或 StringLength 属性

0 投票
1 回答
318 浏览

c# - asp.net 5 MVC6 中标签助手和路由属性之间的奇怪行为

<a>当我在一个标签中使用 asp-controller 和 asp-action 时,在一个由具有[Route]属性的控制器方法调用的视图中,生成的链接具有一个空href属性。

在控制器中:

在视图中:

生成的html:

如您所见,第一个链接未正确生成。针对当前操作之外的另一个操作的所有链接都使用空href标记生成。

当我删除 ShowSection 操作的 [Route] 属性时:

如您所见,链接已正确生成。

如何在保留我的[Route]属性(或使用替代方法)的同时解决此问题?

0 投票
0 回答
574 浏览

c# - MVC6 TagHelper 服务器端验证中的错误自定义错误消息

在 MVC6 TagHelper 中,我创建了两个文本框和绑定模型,其中包含自定义错误消息,一个字符串类型的文本框和另一个 int 类型的文本框,在回发期间,数据注释中指定的自定义错误消息未正确呈现为其他类型细绳。

我的控制器是

模型类是

我的 Html Tag Helper 代码是

这里只检查服务器端验证,如果我单击提交按钮,第一个文本框跨度验证显示需要字符串值,但第二个文本框跨度验证显示值''无效。而不是Int 值是需要的

有人可以建议如何解决这个问题吗?

0 投票
1 回答
2023 浏览

asp.net-mvc - ASP.NET-Core MVC6 foreach 语句不能对“System.Threading.Tasks.Task<..> 类型的变量进行操作

我正在获取 menuItems 列表 - 来自服务异步方法的对象,该方法返回......

调用它的代码是:

错误出现在“foreach”中的 MainHeadings 上,错误是:

错误 CS1579 foreach 语句无法对“System.Threading.Tasks.Task<System.Collections.Generic.List<MyNav.Models.Menu.MenuItem>>”类型的变量进行操作,因为“System.Threading.Tasks.Task<System.Collections” .Generic.List<MyNav.Models.Menu.MenuItem>>' 不包含 'GetEnumerator' MyNav.DNX 4.5.1、MyNav.DNX Core 5.0 C:\Users\simon\DEV\MyNav\src\ 的公共定义MyNav\TagHelpers\Menu\DisplayAllMenuItems.cs 50 活动

调用 _menuService 的类是一个自定义 TagHelper,我确实尝试将 tagHelper 更改为异步,例如

但结果没有正确呈现。

当服务方法同步时,有没有办法解决这个问题......

0 投票
1 回答
1400 浏览

c# - 添加 taghelper 后出现错误 500

我正在学习 MVC 6。一切正常,但是在我的 _ViewImports.cshtml 中添加 taghelper 后,我的应用程序停止了。

这些是我的依赖项:

我添加了这一行:

现在我得到了错误:

无法解析包含程序集“Microsoft.AspNet.Mvc.TagHelpers”的 TagHelper。错误:无法从程序集“Microsoft.Extensions.Logging.Abstractions,Version=1.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.Extensions.Logging.ILogValues”。@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"

有什么建议么 ?我找不到与同一消息相关的任何内容。

0 投票
1 回答
1393 浏览

asp.net - 如何从 Tag Helper 访问 Request 对象

我正在 ASP.NET Core (RC2) 中开发一个 Tag Helper,在呈现 Tag Helper 时,我需要访问 Request 对象,因为我需要弄清楚请求的 URL 是什么。

因此,似乎在 ASP.NET Core 中访问 Request 对象的正确方法是从HttpContext,并获得HttpContext我需要注入IHttpContextAccessor到我的 Tag Helper 中的。

所以我尝试了,但是在运行时抛出了以下异常:

InvalidOperationException:尝试激活“Auth0.AspNetCore.Mvc.TagHelpers.LockTagHelper”时,无法解析“Microsoft.AspNetCore.Http.IHttpContextAccessor”类型的服务。

有什么原因我不能注入IHttpContextAccessor到我的 Tag Helper 中吗?

另外,是否有另一种方法可以访问 Tag Helper 中的 Request 对象?

编辑

似乎问题在于,自从最新的候选版本以来,您必须手动配置 DI 来处理 IHttpContextAccessor。所以ConfigureServices你必须打电话给

services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();

我相信在早期的测试版中这是自动配置的......

问题是这是一个库,我不希望用户在他们的应用程序中配置它以使我的库正常工作,因此任何其他更可靠的访问 Request 对象的方法仍然会受到赞赏:)