为什么我不能在 ASP.NET 中的 HTML 属性内使用 ContentPlaceholder?

2024-01-13

我正在使用 ASP.NET MVC2 和 C#,但这个问题通常适用于 ASP.NET。

这打破了:

<body id="<asp:ContentPlaceHolder ID="BodyID' runat="server" />">

智能感知强调body标签和紧随其后的开头报价id=,并抱怨:

验证 (HTML 4.01):元素“body”的开始标记中缺少“>”字符。

asp 元素被忽略,并且 id 属性在呈现的 HTML 中为空。 (无论我在 ASP 元素内使用双引号还是单引号,都会出现同样的问题,但后者会破坏 VS 中的语法高亮显示。)

这是可行的(假设我设置了会话变量):

<body id="<%: Session["BodyID"] %>">

为什么 HTML 属性内部支持内联计算,但 ASP 控件不会在属性内部呈现?

这是我的用例:根据从控制器传递的数据,视图知道它正在渲染什么类型的数据。该视图将数据注入母版页中的各个位置。我可以将标题注入头部,将标记注入正文——但我也想将数据注入一些属性。 ID 和类名是明显的例子,但还有其他例子。

我想在保持有效标记的同时执行此操作;没有动态呈现整个正文标记之类的技巧——我希望页面在 Visual Studio 中始终看起来像有效的 HTML 或 XML 文档。

使用内联 eval 是可以的,但它需要我设置属性,这是我在模型或控制器中所做的。在某些情况下这是必要的,但在其他情况下,值是静态的——我有一个专门构建的视图,我只需要将视图中的静态值注入到母版页中。我不想经历创建抽象控制器类、让所有控制器继承它等的所有开销,只是为了获得在注入标记时已经拥有的相同功能。

附带问题(是的,我应该为此提出一个单独的问题):ASP 控件和内联代码块的评估顺序是什么?我假设代码块在 ASP 控件之前首先被解析,所以我可以将代码块放入 ASP 控件声明中。但我找不到详细说明该过程的文档 - 有人可以向我指出吗?

Thanks!

UPDATE:Pauli 提到,您确实可以在任何您喜欢的地方使用 ContentPlaceholder,只要它们不在已标记的元素内即可runat="server"。我再次测试,发现他是正确的——我最初错过了这一点。 Visual Studio 仍然感到困惑并给出 HTML 验证警告,但在呈现页面时预期值出现在属性中。所以,问题的答案是“但是你可以!”


  1. 您不应该将 WebForms 控件与 MVC 一起使用
  2. 在你的 ID 和 runat 周围使用 '',因为解析器会混淆所有冲突的 "

由于 body 标记没有 runat="server",因此它不会被视为服务器控件,而只是清晰的文本,因此您可以在任意位置放置 contentplaceholder 或任何其他控件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我不能在 ASP.NET 中的 HTML 属性内使用 ContentPlaceholder? 的相关文章

  • 更新面板异常处理

    当我在正在构建的 ASP NET Web 应用程序中实现的 UpdatePanel 中发生异常时 它们会导致页面上出现 JavaScript 错误 并在警报中提供一些高级错误输出 这对于开发来说还可以 但是一旦系统投入生产 由于多种原因 这
  • 如何在 jQuery 中检查复选框是否被选中?

    我需要检查checked复选框的属性 并使用 jQuery 根据选中的属性执行操作 例如 如果age复选框被选中 然后我需要显示一个文本框来输入age 否则隐藏文本框 但下面的代码返回false默认情况下 if isAgeSelected
  • 如何仅在第一次访问时弹出模态窗口

    我有一个模式窗口 当您访问某个页面时会弹出 访客必须选择我同意或我不同意 我需要一个漂亮的小 jquery 脚本 它会记住谁之前访问过该页面并同意 这样他们每次访问该页面时就不会弹出模式 有人可以推荐一个好的脚本来使用吗 这是代码 div
  • 保护 ASP.NET MVC 应用程序中的 ajax 调用的安全

    我有一个基于 ASP NET MVC 的应用程序 它允许根据用户进行不同级别的访问 当前的工作方式是 当用户访问页面时 会根据数据库进行检查以确定用户拥有的权限 然后根据用户拥有的访问级别选择视图 有些用户比其他用户看到更多数据并拥有更多可
  • ASP.NET 成员资格 HashAlgorithmType 默认为 HMACSHA256,那么密码是哈希键控的吗?

    我有一个 ASP NET 4 5 Web 应用程序 它使用SqlMembershipProvider 在开发过程中 有人把passwordFormat Clear 在配置中导致密码以明文形式保存 我想删除它并启用密码散列 但我想确保散列不是
  • HTML5中如何隐藏video标签的全屏按钮

    我需要隐藏 HTML5 中视频标签的全屏按钮 有什么办法可以实现吗 Thanks 我认为你可以通过更改 css 来实现这一点 document fragments 这些是 DOM1 规范 所有浏览器都支持 但关于样式 我不确定 Simple
  • 如何在 Electron 应用程序中通过 navigator.geolocation 获取当前位置?

    当我尝试获取当前位置时 navigator geolocation getCurrentPosition handleCoordinates handleError timeout 10000 它返回 网络位置提供商位于 https www
  • 有没有办法让 ValidationSummary 与客户端验证器一起使用?

    NET ValidationSummary 控件聚合来自回发时触发的验证器的错误消息 有没有某种方法可以让它也显示来自客户端验证器的错误消息 我正在解决的问题是 在长页面上 可能会单击提交按钮 导致某些客户端验证器失败 但永远不会看到错误消
  • 当名称是数组时如何使用 Javascript 修改 HTML Select

    我有两个同名的 html select 对象 它们是具有不同索引的数组 我想做的是 如果从类别 0 选择元素中选择 关闭 我想禁用类别 1 元素 我一直在尝试使用 document getElementsByName 但无法弄清楚如何专门针
  • 输入类型=“时间”超过24小时

    我刚刚遇到以下问题 在网络应用程序用户界面中 我希望用户输入响应消息的时间范围 以小时为单位 时间范围应最长为 72 小时 我们很乐意使用
  • ExitFullScreen 不起作用 + 无论如何要按键盘单击按钮?

    我的浏览器 Google Chrome 版本 33 0 1750 154 m Script function exitFullscreen var element document documentElement if element mo
  • 如何反转媒体查询中元素的顺序?

    我有两个 div 左和右 但是当屏幕小于 500px 时 左 div 成为底部 div 右 div 成为顶部 div DOM 中的第一个 div 应该显示为第二个 第二个 div 为第一个 I use display flex 然后 div
  • 更改 Google Colab Markdown 文本中的字体样式

    这可以改变 Colab 中 Markdown 的字体样式吗 我编写了这段 CSS 代码 但由于它不起作用 我不知道如何使用它 或者是否可能 该代码完美地工作在html文件但无法在 Colab 上运行
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • iframe 位置居中

    所以我找到了这段用于将内容放在中心的代码 但我的问题是它是为容器制作的 你知道如何为 iframe 制作它吗 或者你知道另一个代码吗 代码 center margin auto width 60 border 3px solid 73AD2
  • Skrollr 添加空白

    我已经尝试了一切 我在谷歌上阅读了 4 5 页试图找到适合我的修复程序 已经筋疲力尽了 即使我使用 skrollr 示例 我的问题仍然存在 不是说他们做错了什么 我知道我只是没有正确理解它 因此 我上传了一个演示 仅在移动设备上展示这个尴尬
  • 浏览器正在加载两张图像 - 一张用于 srcset,一张用于 src(Chrome 41 等)

    我正在开发的网页上使用 srcset 属性 img src img picture 820x496 jpg 如果我检查页面加载了哪些资源 我会发现 Chrome 41 以及使用 polyfill 的 FF 以及 Safari 7 总是加载图
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho
  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • 快速响应的交互式图表/图形:SVG、Canvas 还是其他?

    我正在尝试选择正确的技术来更新一个项目 该项目基本上在可缩放 可平移的图表中渲染数千个点 当前使用 Protovis 的实现性能不佳 在这里查看 http www planethunters org classify http www pl

随机推荐

  • 在java中设置代理

    我创建了一项通过互联网发布内容的服务 一切都很好 但是当我将其部署到我们的服务器时 我得到连接状态 403 禁止 我认为这是因为我们的服务器不允许在未先登录的情况下直接访问互联网 我们必须首先使用我们的用户名 密码在浏览器中登录才能访问互联
  • 通过地址栏加载远程 JavaScript 文件

    是否可以从地址栏加载远程 JavaScript 文件 我一直试图将其放入地址栏 javascript src http depot com file js funcname 我不会用它来做坏事 我只是测试我的网站 仅此而已 如果你想保护你的
  • 如何将 javaw.exe 控制台输出重定向到日志文件?

    我想从批处理文件启动我的 Java 程序 这是我想用来启动应用程序的脚本 但问题是我无法将控制台输出重定向到日志文件 任何人都可以提供任何提示 而无需编辑任何代码 并使用 Java 命令行选项或其他东西吗 echo off set TASK
  • 如何在不换行的情况下打印完整的 NumPy 数组(在 Jupyter Notebook 中)

    这个问题与这个问题不同 如何打印完整的 NumPy 数组而不截断 https stackoverflow com questions 1987694 how to print the full numpy array without tru
  • Android Studio 在 M1 Apple Silicon 芯片上非常滞后

    我已从第 7 代升级到 M1 芯片 2020 Macbook Air 英特尔芯片电脑 总的来说 我对此感到非常高兴和满意 但当谈到我经常使用的 Android Studio 性能时 我很抱歉地说 非常令人失望 Apple Silicon 兼
  • 如何在 Android 上的 ListActivity 中实现上下文菜单?

    如何实现通过长按或点击使用内置布局和 ListAdapter 的 ListActivity 触发的上下文菜单 在 onCreate 方法调用上注册上下文菜单 http developer android com reference andr
  • Tensorflow GradientTape 间歇性地出现“变量不存在梯度”

    在训练我的网络时 我偶尔会遇到警告 W0722 11 47 35 101842 140641577297728 optimizer v2 py 928 Gradients does not exist for variables model
  • 在 Ubuntu 上导入 matplotlib

    所以我下载并安装了matplotlib 奇怪的是 当它们放置在 home user Desktop 中时 我可以很好地运行这些示例 但是当我将它们移动到 home user Documents 时 它们停止工作 并且我收到以下消息 Docu
  • 拍摄嵌入式 Linux 帧缓冲区的屏幕截图

    我在评估套件 Zoom OMAP35x Torpedo 开发套件 上运行嵌入式 Linux 该板有一个 LCD 我希望能够拍摄屏幕截图并将其转换为 gif 或 png 我可以通过执行以下操作来获取原始数据 cp dev fb0 screen
  • jqgrid搜索/过滤器

    这与我的最新问题有关link https stackoverflow com questions 5775022 edited how to display the searched data on the jgrid 我已经弄清楚错误是什
  • 在 Angular UI Bootstrap 中打开模式时出现 404 Not Found 错误

    我在使用 UI Bootstrap 时遇到一个非常奇怪的问题 即使是最简单的例子也不起作用 这就是我的情况 我有一个使用 yeoman 插件的 Play Framework 应用程序 https github com tuplejump p
  • Python:无法捕获 IndexError

    免责声明 这看起来像是重复的 但找到这个特定问题的答案不仅仅是微不足道的 我希望其他人能更轻松地找到这个问题 答案 当我运行以下代码时 它无法捕获第二个 IndexError 而是引发它 try raise ValueError excep
  • 如何向 Xbox Live Restful API 发送请求?

    我想向 Xbox Live Restful API 的配置文件 URI 和人员 URI 发送请求 我无法理解这两个接口的授权部分 POST 用户 批 配置文件 设置 https learn microsoft com en us windo
  • 在azure构建管道中,一旦推送,如何从自托管代理清理docker镜像(作为管道的一部分创建)?

    我正在使用自托管代理来运行我的构建管道 代理机器已下载基础 docker 映像 管道使用第一个任务构建并推送新的 docker 映像 基于基础映像的顶部 如以下屏幕截图所示 一旦构建了映像并将其推送到容器注册表 我希望从自托管代理中清理映像
  • 覆盖 Django Forms 中的标签

    我有 3 个具有相同字段的部分 除了 标题 字段上的标签 对于所有这些 我都使用相同的 Django 表单 在我的观点中 def get self context self CONTEXT CLASS self MODEL CLASS co
  • 使用 Microsoft 认知语音 API 和非麦克风实时音频流进行语音识别

    Problem 我的项目由一个实时录制音频的桌面应用程序组成 我打算为此接收来自 API 的实时识别反馈 与一个麦克风 使用 Microsoft 新的 Speech to Text API 进行实时实现是微不足道的 我的场景与此的不同之处仅
  • 如何防止 Angular 中的内存泄漏

    我们有一个具有复杂且冗长视图的应用程序 一个视图大约有 50 个具有自己的服务 订阅和行为的组件 组件有自己的变量 包括数组和表单组 问题 从 View2 Component2 导航回 View1 Component1 后 我仍然在 chr
  • 我在 python 中遇到关键错误

    在我的 python 程序中 我收到此错误 KeyError variablename 从这段代码来看 path meta entry path strip 任何人都可以解释为什么会发生这种情况吗 A KeyError https docs
  • 在 scrapy/python 中创建循环来解析表数据

    使用 scrapy 编写 python 脚本 从网站抓取数据 将其分配给 3 个字段 然后生成 csv 工作正常 但有一个主要问题 所有字段都包含所有数据 而不是针对每个表行将其分开 我确信这是由于我的循环不起作用 当它找到 xpath 时
  • 为什么我不能在 ASP.NET 中的 HTML 属性内使用 ContentPlaceholder?

    我正在使用 ASP NET MVC2 和 C 但这个问题通常适用于 ASP NET 这打破了 gt 智能感知强调body标签和紧随其后的开头报价id 并抱怨 验证 HTML 4 01 元素 body 的开始标记中缺少 gt 字符 asp 元