c# - JavaScript 中的 HTML 助手?

标签 c# javascript razor

在 Razor 中我可以这样做:

<p @Html.MyCustomDataAttributeFor(person) >@person.Name</p>

要渲染这样的东西:

<p data-custom-person-id="1234567890" >Fred</p>

然后我真的必须在(不显眼的)JavaScript 中执行此操作吗:

$('p[data-custom-person-id="1234567890"]').css('background-color','red');

当我更愿意这样做时:

$('p[@Html.MyCustomDataAttributeFor(person)]').css('background-color','red');

要是我可以就好了,否则如果 HTML 帮助程序生成的数据属性发生变化,我的客户端代码将不再为该元素设置样式。

最佳答案

您能否将脚本指向 .cshtml 文件?

 <script type="text/javascript" src="/myscript.cshtml"></script>

我想我已经对 .php 和 .aspx 都这样做了,所以我看不出它不应该工作的原因。 在这些情况下,它会让服务器首先处理文件。

否则您可以使用客户 HttpHandler在发送到客户端之前解析您想要的服务器端的任何文本。

然而,最简单的方法是从 Razor 设置一些 Javascript 变量,即:

<script type="text/javascript">
    var customerId = '@Html.MyCustomDataAttributeFor(person)';
</script>

然后写:

$('p[' + customerId + ']').css('background-color','red');

关于c# - JavaScript 中的 HTML 助手?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14453704/

相关文章:

c# - 在html中使用c#执行if语句

javascript - 如何将 bool 值从 cshtml 文件传递​​到 javascript 函数/构造函数?

c# - 使用 HTML Helpers 时列表模型绑定(bind)索引不正确

asp.net-mvc-3 - 需要帮助来区分 WebMatrix、ASP.NET 网页和 Razor 语法

C# LINQ 包含

c# - 正则表达式在遇到分号后停止解析

c# - 如何从 Asp .Net 中的 Active Directory 获取不同的部门名称?

javascript - 使用公共(public) ACM 在 AWS 上部署 Expressjs

javascript - HTML5/jQuery 音频随机播放 onClick

javascript - 圆圈在 paper.js 的 Canvas 上填充点