Razor 语法和 JavaScript

2024-04-17

作为测试,我将我们编写的概念验证应用程序从 Web 表单转换为 Razor,以便我们可以对其进行评估。

到目前为止,我遇到了一个让我头疼的问题..生成客户端 Javascript...

网络表格

<script type="text/javascript">
    var jqGridIdList = "<%: Url.Action ("getidlist", "office", new { area = "reports" }) %>";

    var availableIds = [];
    <% for (var i = 0; i < Model.Data.Count (); i++) { %>
    availableIds.push({ value : "<%: Model.Data.ElementAt (i).Text %>", label : "<%: Model.Data.ElementAt (i).Text %>" });
    <% } %>
</script>

剃刀语法

<script type="text/javascript">
    var jqGridIdList = "@Url.Action("getidlist", "office", new { area = "reports" })";

    var availableIds = [];
    @for(var i = 0; i < Model.Data.Count (); i++) {
    availableIds.push({ value : "@Model.Data.ElementAt(i).Text", label : "@Model.Data.ElementAt(i).Text" });
    }
</script>

编译器在“availableIds.push”行上给出以下错误:

编译器错误消息:CS1525:无效的表达式术语“{”

它显然试图将其编译为 C#...但我该如何阻止它呢?

Thanks,
Kieron


您需要将其包装在伪元素中<text>。这会将解析器切换回 html 模式,然后它将解析 javascript 作为 html 而不是 c# 的一部分。发生这种情况的原因是@for()是一个 C# 块,其中处理的任何内容也被视为 C#,直到它被 html 标记转义。由于您可能不想要 html 标签剃刀提供的<text>标签来切换模式。

如果您注意到 ASP.NET Web 表单中的差异,请结束<% for与一个线%>这使它退出 C# 模式。如果您下载 Visual Studio 2010 的 razor 荧光笔扩展,它将帮助您了解何时将代码视为代码,何时将 html 视为 html。

<script type="text/javascript">
    var jqGridIdList = "@Url.Action("getidlist", "office", new { area = "reports" })";

    var availableIds = [];
    @for(var i = 0; i < Model.Data.Count (); i++) {
        <text>availableIds.push({ value : "@Model.Data.ElementAt(i).Text", label : "@Model.Data.ElementAt(i).Text" });</text>
    }
</script>

更新至最新版本

您现在可以使用@:语法更具可读性

<script type="text/javascript">
    var jqGridIdList = "@Url.Action("getidlist", "office", new { area = "reports" })";

    var availableIds = [];
    @for(var i = 0; i < Model.Data.Count (); i++) {
        @:availableIds.push({ value : "@Model.Data.ElementAt(i).Text", label : "@Model.Data.ElementAt(i).Text" });
    }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Razor 语法和 JavaScript 的相关文章

  • 无法在 JavaScript for 循环中读取 null 的属性“长度”

    我正在尝试制作一个像 Stack Overflow 那样的 Markdown 编辑器 如果我实际上没有在文本区域中键入星号和包含短语的 http 我会收到标题中列出的此错误 如果我只输入包含星号的短语 则错误指的是这一行 if linkif
  • 定义 js-xlsx 单元格范围

    我正在尝试使用 js xlsx 读取 Excel 值 我可以使用以下代码从工作簿工作表中获取单元格值 if typeof require undefined XLSX require xlsx var workbook XLSX readF
  • Javascript - 在加载所有图像后执行

    看了别人的问题我想 window onload 会回答我的问题 我已经尝试过这个 但它会在页面加载时立即执行代码 而不是在图像加载之后 如果有什么区别的话 图像来自 CDN 并且不是相对的 有人知道解决办法吗 我没有使用 jQuery 想要
  • 打开 md-calendar 时滚动到当前日期

    目前正在构建一个使用 Angular Material 的应用程序 我们需要一个 md calendar 组件 我们想要自定义按钮样式和内容 因此不使用普通的 md datepicker 问题是 当 md calender 打开时 滚动位置
  • 为什么 length 是 `Array` 的属性而不是 `Array.prototype` 链

    所以我在 V8 控制台上玩了很多 我做到了 Object getOwnPropertyNames 我期望得到 结果 然而 length 所以这意味着不是成为原型链的一部分 length是所有人的成员财产Array对象 这是一个错误 还是有任
  • 搜索深度嵌套数组以更新对象

    我有一个深层嵌套的数据结构 我有兴趣匹配数组 和数组数组 中的某个值 然后将一些数据推送到随附的数组中 例如以下是我的数组colors并伴随着的是更多颜色数组可能存在也可能不存在 var myData color green moreCol
  • 将文本大小调整为矩形 在 Canvas HTML5 中调整大小

    我是 Canvas 新手 我正在创建一个网站 以在调整矩形大小时增加文本 我尝试了很多 但没有任何效果 实际上 我希望如果我仅按其宽度调整矩形大小 向左拉伸 向右拉伸 则仅应增加文本宽度而不是字体大小 我已经完成了字体大小 但发现增加孤立文
  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 使用 JavaScript 生成 PDF 文件

    我正在尝试将 XML 数据从网页转换为 PDF 文件 并且希望能够完全在 JavaScript 中完成此操作 我需要能够绘制文本 图像和简单的形状 我希望能够完全在浏览器中完成此操作 我刚刚写了一个名为jsPDF https github
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • 如何调用 google 的 getBasicProfile() 来仅单击按钮即可登录 google?

    我在我的网站上使用谷歌登录
  • 了解 JavaScript - 资源

    使用 StackOverflow 的微型 Digit Blog 功能进行描述here https stackoverflow com about 我想发布以下我刚刚看到的 我觉得很有趣的谷歌技术谈话视频 我一直在理解 javascript
  • 在管道中重用变量的功能方式

    在 javascript 和 typescript 中与 Ramda 一起使用函数式编程 我经常发现自己编写如下代码 const myFun c gt const myId c id const value pipe getAnotherO
  • 为什么将 x 和 y 设置为 0 时 svg 文本会消失?

    我刚刚开始阅读有关svg我提出了以下问题 我正在创建一个简单的svg with a text里面如下图所示 从我的阅读中我了解到x and y of the text标签声明文本在标签内的位置svg space 为什么当我同时设置x and
  • Google 地图 API:忽略 DirectionService 请求中的季节性限制

    我目前正在开发一张地图 其中显示两点之间的最短路线 使用不同的交通工具 我注意到 有时 例如在冬季关闭的道路不会被考虑在内 我发现我可以使用方向服务 下面的代码 忽略高速公路 收费站和渡轮 但我一生都无法弄清楚如何 是否可以忽略季节性限制
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • 如何使用 jQuery 或 JavaScript 聚焦 或 标签?

    for var i 0 i
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐

  • 检索 Windows 10 电源模式滑块的状态

    是否有任何 API 可以检索 Windows 10 电源模式滑块的状态 我在看Windows System Power名称空间 https learn microsoft com en us uwp api windows system p
  • GitHub Actions 工作流程错误:运行命令超时!即使剧本做得很好

    每次提交到存储库时 我想在远程服务器上部署 Nuxt js 应用程序 这是我的deploy yml name Deployment on push branches master jobs deploy name Deploy runs o
  • 分配多个 JsonProperty?

    我正在尝试创建一个包含来自 Facebook 和 Twitter 的信息的单个数据类 但在我来自 Twitter 的 JSON 回复中我需要id str我从 Facebook 得到id 我需要将这两个放入id 细绳 现在我知道我可以使用 J
  • WooCommerce:如何在价格和促销价格之前添加文本?

    我已成功地让文本显示在价格之前和促销价格之前 但文本被视为价格的一部分 而不是与其分开 Placing ins before content Betty s price color 000 font size 14px 在我的自定义 CSS
  • Flutter 嵌套行 MainAxisAlignment

    我想做这个 但这是我实际得到的 这是我的代码 Row itemTransaction BuildContext context Transaction transaction This is the function that will b
  • 如何配置 android 测试目录?

    Android gradle 构建强制我的 AndroidTests 位于 src androidTests 中 如何将其更改为我选择的另一个目录 这是一些背景 我正在从 eclipse 迁移一个项目 根据构建文档 当我将其添加到我的 gr
  • 重新启动 Vaadin 应用程序时抛出 java.io.NotSerializedException

    当我重新启动 Tomcat 时 出现以下错误 2014 10 01 15 49 47 055 WARN com vaadin event ListenerMethod localhost startStop 2 Error in seria
  • 如何判断一个对象是否是 Mockito 模拟对象?

    是否可以在代码中判断给定对象是否是 Mockito 模拟对象 我想这样做的原因是在使用模拟时返回不同的错误消息 这将用于向其他开发人员建议他们应该使用预先准备的模拟 该模拟已经设置为以有用的方式应答呼叫 而不是自己创建模拟 目前我拥有的最好
  • 《How To Make a Tile-Based Game with Cocos2D 2.X》用cocos2d V3制作本教程

    我有一个小问题 在本教程中如何使用 Cocos2D 2 X 制作基于图块的游戏 http www raywenderlich com 29458 how to make a tile based game with cocos2d 2 x使
  • 当活动处于后台或不在后台时,Firebase 通知不起作用

    我的编码与 firebase 示例代码提供的相同 当 Activity 处于前台状态或打开时 它可以正常工作 但是 当活动关闭或处于后台状态时 它就无法正常工作 问题是这样的 不显示应用程序的应用程序图标 默认情况下以应用程序名称作为通知标
  • 为什么基元的包装类没有 setter?

    包装类 如 Integer Double 等 没有为其内部原始值设置 setter 的原因是什么 我问这个问题是因为这种功能可以简化微积分 并使 Java 语言更加灵活 让我举一些例子 1 我们看下面的例子 Integer x new In
  • 通过adb获取sdcard目录

    我正在制作一个应用程序 它通过 adb 从设备 SD 卡中提取文件 由 Android 应用程序保存 问题是不同的设备 有不同的SD卡目录 i e sdcard SD卡 external sd 首先我发明了以下解决方案 运行 adb she
  • 如何解决“安装包:当前环境没有打开的解决方案。”

    我有一个包含 1 个项目的解决方案 打开包管理器控制台 运行 Install Package MSBuildTasks 但它给了我一个错误 Install Package The current environment doesn t ha
  • 使用 getActivity() 进行强制转换安全吗?

    我正在编写一个有父级的应用程序Activity和几个孩子Fragments 我正在尝试让片段与父活动进行通信 我知道有几种方法可以做到这一点 包括创建一个接口并在父活动中实现它 不过 我对这个方法很感兴趣 ParentActivity ac
  • 禁用 sympy 中的自动简化

    我想禁用 sympy 中的自动简化 例如求解方程x y x我想要得到x x代替1 import sympy from sympy abc import x y z expr x y x sympy solve expr y gt 1 i w
  • 为什么 `head` 需要 `()` 而 `shape` 不需要?

    在下面的代码中 我将 csv 文件导入到 Python 的 pandas 库中并显示前 5 行 并查询 pandas 数据框的 形状 import pandas as pd data pd read csv my file csv data
  • 链接对象文件时出现“未定义的引用”错误[重复]

    这个问题在这里已经有答案了 我意识到这个问题已经通过多种方式提出 包括这个非常全面的答案 https stackoverflow com questions 12573816 what is an undefined reference u
  • DropBox Mac 客户端如何工作?

    我一直在看DropBox http www getdropbox com install os macMac 客户端和我目前正在研究为不同的服务实现类似的界面 他们究竟是如何与这样的取景器交互的 我非常怀疑文件夹中表示的这些对象是每次加载时
  • 颤振卡顶部半径被图像覆盖

    当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 当我向卡片添加图像时 卡片顶部的半径被覆盖 我该如何解决 class App extends StatelessWidget override Widget build BuildC
  • Razor 语法和 JavaScript

    作为测试 我将我们编写的概念验证应用程序从 Web 表单转换为 Razor 以便我们可以对其进行评估 到目前为止 我遇到了一个让我头疼的问题 生成客户端 Javascript 网络表格