ASP.. NET MVC -如何在javascript中执行条件c#代码
ASP.NET MVC - How to execute conditional C# Code in javascript
首先,我不是一个MVC开发人员-我只是试图帮助一些MVC家伙在他们的项目,由于各种限制,他们有,所以如果这是一个n00b的事情,请不要拍摄:)
事情是这样的——这个团队使用了一个框架,它有一个渲染函数,像这样:
ObjMP.render ({
// various configuration options
labels: [
{ settings: '@Html.Raw(lablesPosition[0])', content: '@Html.Raw(lablesContent[0])' },
{ settings: '@Html.Raw(lablesPosition[1])', content: '@Html.Raw(lablesContent[1])' }
]
让我感到困扰的配置选项是上面显示的"标签"选项。"lablesContent"answers"lablesPosition"实际上在我的。cshtml文件中列出。
如您所见,上面的代码使用了存储在索引0和1处的集合中的设置。这实际上是一个硬编码的东西我不能保证集合中只有2个项目。
要克服这个问题,我可以这样做:
1>以某种方式编写foreach循环,而不是使用lablesPosition[0]等,我可以使用lablesPosition[I]
2>我知道每个场景的集合中的记录计数,因此根据场景选择,我使用if - else块编写5个设置或4个设置,如下所示:
if(selectiong=="a")
{
labels: [
{ settings: '@Html.Raw(lablesPosition[0])', content: '@Html.Raw(lablesContent[0])' },
{ settings: '@Html.Raw(lablesPosition[1])', content: '@Html.Raw(lablesContent[1])' }
]
}
else if(Select=="b")
{
labels: [
{ settings: '@Html.Raw(lablesPosition[0])', content: '@Html.Raw(lablesContent[0])' },
{ settings: '@Html.Raw(lablesPosition[1])', content: '@Html.Raw(lablesContent[1])' },
{ settings: '@Html.Raw(lablesPosition[2])', content: '@Html.Raw(lablesContent[2])' }
]
}
第二种方法的问题是,当页面呈现时,RAZOR引擎似乎在运行时用"@"评估所有表达式,而不管JS中的if - else条件验证,因此代码对我来说中断-基本上它可能会尝试访问集合中位置6的值,当集合只有2个项目时。
我该如何解决这个问题?(ASP。. NET MVC 3)
如果我理解这个问题,你的问题是RAZOR无法知道基于Javascript跳过哪些c#值。它不计算JS,它只是生成它。
它认为你需要把你的条件带到服务器层,如果你的逻辑支持(它应该)。
这意味着,if(selectiong=="a")
不应该是JS if/else
,它应该是 c# if/else
。
看一下这个SO问题(简单的If/Else Razor语法)的基本实现。
谢谢你的指点。最后,我想出了一种在c#代码中动态生成"标签"数据的方法,并将其发送到我的JS中的变量中,该变量被评估为@Html。
- 如何做到这一点,使代码在不传递条件后执行函数
- 如果条件匹配,则停止执行脚本
- If语句只执行第一个条件并运行其他条件,但没有结果
- Javascript同时执行If和Else条件(PHP)
- 如何在条件成立后停止程序执行
- 将JavaScript函数分配给提交按钮,该按钮应有条件执行
- 基于浏览器窗口大小的条件 JavaScript 执行
- 基于条件执行功能
- 执行条件映射联接
- 在 jQuery / Javascript 中的 bind() 事件之后执行条件
- Javascript 在执行其内容后执行条件
- 如何使用 str.search() 或类似方法在 jQuery 中执行条件
- 默认情况下,在启动时执行条件AND中的一行
- 查找时差并执行条件
- 对文本输入执行条件
- 插入和执行条件javascript
- 单击任一项目时执行条件
- ASP.. NET MVC -如何在javascript中执行条件c#代码
- 通过执行条件函数提高速度
- 如何对XHR执行条件语句