Mr.*_*ond 1 javascript c# asp.net-mvc razor
我如何从视图模型值在Javascript如果属性为空一样int?,bool?等
我易于管理的检查,如果酒店有一个价值,它的作品,直到我回到它的价值。
<script type="text/javascript">
// Works as expected
var year = !!'@Model.Year' ? 1994 : 0;
// Null reference exceptin thrown
var year2 = !!'@Model.Year' ? @Model.Year.Value : 0;
</script>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,使用 razor 语法返回属性时会忽略该条件。如果使用if和else语句也会发生同样的情况。
编辑:
如果@Model.Year.HasValue.ToString().ToLower()用于检查空值,也会引发异常。
您可以使用HasValue可空 int 变量上的属性来确定它是否具有值,如果是,则读取该值,否则设置您想要的默认值。这样你就不用操心,你可以在一个C#语句做到这一点True和true不一致C#和JavaScript之间。
这应该可以正常工作。
<script>
var year = @(Model.Year.HasValue ? Model.Year.Value : 0);
alert(year);
</script>
Run Code Online (Sandbox Code Playgroud)
在这里,我们将整个表达式包装为单个 C# 语句,方法是将其包装在@(和 中)。因此,当加载此页面时,razor 将运行 C# 语句并将结果值设置为您的 javascript 变量。