【发布时间】:2021-12-27 19:10:22
【问题描述】:
我正在尝试抓取 HTML 元素,以便首先设置然后获取单选列表的选定值。我有以下元素
<input type="radio" id="radioAlertOnly" name="AnomalyLevel" runat="server" value="0" />
<input type="radio" id="radioIsolateAndAlert" name="AnomalyLevel" runat="server" value="1" />
<input type="radio" id="radioRemediateAndAlert" name="AnomalyLevel" runat="server" value="2" />
<input type="radio" id="radioRemediateAndLog" name="AnomalyLevel" runat="server" value="3" />
我尝试添加 Blazor.WebForm.UI 包,该包提供对 System.Web.UI 和 System.Web.UI.HtmlElements 库的访问,但它们都没有 FindControl 方法。
我也尝试只使用面板,但没有任何区别。
有人知道如何在后面的代码中访问这些元素吗?
【问题讨论】:
-
我遵循了这个问题中的指导 - stackoverflow.com/questions/41395612/… - 但在编写控件时我仍然没有获得 asp 选项。
-
我已将 the_ViewImports.cshtml 添加到 Razor 主页面所在的 Pages 文件夹中。我在其中有一个到 Pages 文件夹的导入,指向我的程序集名称的命名空间和主 @addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers 而且它仍然不起作用。
-
@KenTola 自 2009 年发布的 ASP.NET MVC 1.0 以来,ASP.NET 中没有
HTML Controls。这是一个 WebForms 概念,它试图让网站表现得像桌面应用程序和 在过去 12 年中没有被任何其他框架使用。 WebForms 没有迁移到 .NET Core,因为它已经过时了十年。 -
@KenTola 您无法将 WebForms 应用程序迁移到 ASP.NET Core。你必须重写它。 Razor Pages 的行为有点像 WebForms,没有像服务器端 HTML 控件这样的坏部分。中间件是完全不同的——身份验证、授权、身份、数据访问是完全不同的。生成的 HTML 完全不同,数量级更少。浏览器不同。
input type='date'的行为比 WebForms 中的任何 DatePicker 都好,无需任何 JavaScript 或服务器端代码 -
Blazor.WebForm.UI package that provides access to the System.Web.UI不,它没有。 Blazor 是一种使用在客户端上运行的 WebAssembly 的全新技术。您使用的是模拟一些旧的 WebForms 控件的第三方包。它不能单独使用,它是this project 的一部分。它仅适用于 Blazor 应用程序。如果您只是将示例代码与创建新 Blazor 项目时生成的FetchData进行比较,您就会明白为什么 WebForms 已死
标签: c# html asp.net-core razor-pages .net-6.0