问题标签 [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.
c# - 在 MVC 6 中,如何在视图中编写复选框列表并将选中的值传递给控制器?
抱歉,我的大部分搜索都将我带到了旧的 MVC 代码。任何帮助将不胜感激。
在带有标签助手的 MVC 6 中,如何编写一组复选框:
- 对标签使用标签助手,因此单击它将切换选中的值
- 将选中的值保存(绑定?)到 IsOptionSelected 属性
- 单击提交后将这些检查值传递回控制器
?
我能够正确显示带有标签的复选框,但我不知道如何通过模型将检查的值传递回控制器。现在,IsOptionSelected 值返回为 false。
我还能够使标签的 html 助手工作,但不能使标签助手工作。我可能也把这些都编码错了,所以任何提示都会有所帮助!
这是我到目前为止所拥有的:
展示:
实体:
模型:
存储库:
看法:
提前致谢!
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")]
结果。
我在这里错过了什么明显的东西吗?
asp.net-core-mvc - 如何从 MVC 6 TagHelper 类访问会话和其他网络上下文?
我需要调用一些控制器/操作方法或至少调用我自己的帮助方法,这些方法将使用会话变量。我如何从 TagHelper 的 Process 方法中执行此操作
asp.net-core - 带两个参数的 MVC6 属性路由
我已经环顾四周,没有任何与 MVC6 taghelper 锚标记相关的内容与具有可满足多个参数的替代 [HttpGet] 方法有关。
当然,您可以向 MVC6 锚标记助手添加多个参数,但是如何使用属性路由处理带有两个参数的第二个选项...
我有两个 [HttpGet] IactionResult 方法:
我认为尝试采用第二种方法:
呈现为:
或者
IT 从不采用第二种方法。
我需要做什么才能使用 MVC6 锚 taghelper 使用带有两个参数的第二个 [HttpGet] 方法?
编辑
另外,您如何处理分隔路由属性中两个参数的 & 符号...
c# - TagHelper 从 ForExpression 获取 MaxLengthAttribute 属性
如何从 TagHelper ModelExpression 中获取 MaxLength 属性?
我曾经能够在 MVC 5 中做到这一点
我需要获取模型上的 MaxLength 属性 - 示例:
TagHelper 确实公开了 ModelExpression.Metadata。DisplayName属性和其他属性,但不是 MaxLength 或 StringLength 属性
c# - asp.net 5 MVC6 中标签助手和路由属性之间的奇怪行为
<a>
当我在一个标签中使用 asp-controller 和 asp-action 时,在一个由具有[Route]
属性的控制器方法调用的视图中,生成的链接具有一个空href
属性。
在控制器中:
在视图中:
生成的html:
如您所见,第一个链接未正确生成。针对当前操作之外的另一个操作的所有链接都使用空href
标记生成。
当我删除 ShowSection 操作的 [Route] 属性时:
如您所见,链接已正确生成。
如何在保留我的[Route]
属性(或使用替代方法)的同时解决此问题?
c# - MVC6 TagHelper 服务器端验证中的错误自定义错误消息
在 MVC6 TagHelper 中,我创建了两个文本框和绑定模型,其中包含自定义错误消息,一个字符串类型的文本框和另一个 int 类型的文本框,在回发期间,数据注释中指定的自定义错误消息未正确呈现为其他类型细绳。
我的控制器是
模型类是
我的 Html Tag Helper 代码是
这里只检查服务器端验证,如果我单击提交按钮,第一个文本框跨度验证显示需要字符串值,但第二个文本框跨度验证显示值''无效。而不是Int 值是需要的
有人可以建议如何解决这个问题吗?
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 更改为异步,例如
但结果没有正确呈现。
当服务方法同步时,有没有办法解决这个问题......
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"
有什么建议么 ?我找不到与同一消息相关的任何内容。
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 对象的方法仍然会受到赞赏:)