我如何在MVC2 aspx页面上执行相当于嵌入JavaScript的操作:
if (('<%= Model.SomeFunctionEnabled %>' == 'True')
以及MVC3中Razor视图页面(cshtml)上的整个功能代码块?
类似的东西:
@{
foreach(var d in Model.Employees)
{
....
}
}
嵌入视图页面的HTML部分时效果很好。 感谢
答案 0 :(得分:30)
为什么在服务器端执行此操作时在客户端进行测试,并在测试成功时包含javascript以相应地执行操作:
<script type="text/javascript">
@if (Model.SomeFunctionEnabled) {
<text>
// Put your javascript code here
alert('the function is enabled');
</text>
}
</script>
答案 1 :(得分:0)
如果你想在JavaScript中执行逻辑:
if ('@Model.SomeFunctionEnabled' == 'True') {
}
但是这会导致总是评估相同结果的条件。因此,对于Darin的答案,你可以更好地在服务器上进行整个测试。
如果您的测试是动态的,那么就无法在服务器上执行。您可以使用@
符号获取C#变量的内容。
@{
var elementID = GetMyGeneratedElementID();
}
<div id="@elementID">...</div>
<script>
function MyAmazingJavascriptElementHandler() {
if ($("#@elementID").SomeTest()) {
DoMyAmazingJavascript();
}
}
</script>