gpt4 book ai didi

c# - 无法在 Razor View 中设置 javascript 对象

转载 作者:行者123 更新时间:2023-11-30 13:20:14 24 4
gpt4 key购买 nike

我正在尝试在我的主视图中设置一个 JavaScript 对象:

<script type="text/javascript">
xx.yy.zz =
{
a: @Model.Id,
b: '@Model.Name',
c: @Html.Raw(Model.JsonFeature)
}
</script>

Property "a" is an int.

Property "b" is a string.

Property "c" is also a string on the server side, but it's actually a JSON-encoded string, hence my use of @Html.Raw.

但问题是该字段可能为空,所以我正在尝试做这样的事情:

<script type="text/javascript">
xx.yy.zz =
{
a: @Model.Id,
b: '@Model.Name',
c: @(Model.JsonFeature != null ? Html.Raw(Model.MappingViewModel.JsonFeature) : null)
}
</script>

它导致了各种各样的问题,例如呈现这个:

<script type="text/javascript">
xx.yy.zz =
{
a: 1,
b: 'Foo',
c:
}
</script>

因此它用“Unexpected token }”(可以理解)来破解它。

如何使用 Razor C# 条件将 javascript 属性设置为字符串值或空值?

最佳答案

像这样尝试:

<script type="text/javascript">
xx.yy.zz = @Html.Raw(Json.Encode(new {
a = Model.Id,
b = Model.Name,
c = Model.JsonFeature != null && !string.IsNullOrEmpty(Model.MappingViewModel.JsonFeature)
? Json.Decode(Model.MappingViewModel.JsonFeature)
: (string)null
}));
</script>

关于c# - 无法在 Razor View 中设置 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10476959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com