【问题标题】:Editing razor elements编辑剃刀元素
【发布时间】:2021-04-22 09:01:01
【问题描述】:

我对剃须刀很陌生,所以对我来说太赤裸裸了。无论如何,我知道你可以制作例如。 <p> 元素 一个变量,然后您可以使用 C# 进行更改,但我想知道是否可以以 Javascript 允许的方式编辑元素,例如 .innerHTML。如果是,我将如何获得元素,例如document.getElementById(...)

【问题讨论】:

  • 我们说的是 Razor 还是 Blazor。如果是 Blazor,那么我认为您对如何操作元素中的数据有错误的看法。向我们展示一个 razor 组件上下文中的真实代码示例。
  • 对于 Blazor:您不应该需要这个,您正在尝试复制 Blazor 的功能:操作 HTML。而且你不应该这样做,因为你会干扰它。

标签: c# razor blazor


【解决方案1】:

在 Razor 中,所有元素及其属性实际上只不过是字符串
例如。这在 Razor 中:

<p class="@className">@(text)</p>

将在内部像这样执行:

output.Write("<p class=\"" + HtmlEncode(className) + "\">" + HtmlEncode(text) + "</p>");

您可以完全控制&lt;p&gt; 将拥有的属性和内容。但最终这一切都变成了写入输出流的纯文本,这是 Razor 渲染的唯一任务。

要在呈现 HTML 输出后对其进行操作,您唯一的选择是在客户端,在浏览器中,使用 Javascript。

【讨论】:

  • 此答案与 Razor 组件无关。您的回答好像是在询问 Razor Pages,但这是 Blazor 问题。
  • @MisterMagoo:这是 Razor Blazor 问题...两个标签都在那里。
  • 问题是 Razor。 @Peter B 这样回答。我们其他人在字里行间读到,并猜测这是关于 Blazor 的,因为 Blazor 标签。我要求澄清,提问者还没有回来。
  • @MrCaka:“你可以用 C# 进行更改”
猜你喜欢
  • 1970-01-01
  • 2016-12-25
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
相关资源
最近更新 更多