【发布时间】:2020-11-23 18:49:53
【问题描述】:
所以我已经阅读了一些其他主题,例如this 和this。但我还没有找到任何可以回答我的具体问题的东西。
我想将 JavaScript 变量设置为两个可能值之一(我们称它们为 V1 和 V2),条件是某个模型属性的值。 V1 来自模型,V2 来自另一个 JavaScript 属性。不幸的是,由于各种 API 使用数据的方式,我不能只评估在控制器中使用这两个值中的哪一个并将其交给视图。这是我的目标示例,但无法编译:
<script type="text/javascript">
var defaultValue = 'Hello';
@{
if(Model.ValueSpecified)
var myValue = '@(Model.ValueToUse)';
else
var myValue = defaultValue;
}
</script>
因此,如果模型具有true 的ValueSpecified 和Goodbye 的ValueToUse,则生成的脚本行应该是:
var myValue = 'Goodbye';。但如果模型ValueSpecified 是false,那么我希望脚本行读取var myValue = 'Hello';
然后我熟悉了 Html.Raw() 并尝试了这个:
<script type="text/javascript">
var defaultValue = 'Hello';
@if(Model.ValueSpecified)
{
@Html.Raw("var myValue = '" + Model.ValueToUse + "';");
}
else
{
@Html.Raw("var myValue = defaultValue;");
}
</script>
并且输出按预期工作。但这似乎很不靠谱。有没有更好的方法来处理razor内部的js流控?
感谢您的帮助!
【问题讨论】:
标签: javascript asp.net-core-mvc