C#如何将boolean值传递到视图用于条件校验
解决方案
1. 确认控制器赋值逻辑
首先检查控制器代码中是否完成了Model属性到ViewBag的赋值,示例参考:
// 从JSON API反序列化得到Model实例 var targetModel = JsonConvert.DeserializeObject<你的Model类名>(api返回的JSON内容); // 显式将布尔属性赋值给ViewBag ViewBag.boolean = targetModel.boolean;
2. 优化视图判断代码
使用可空值类型内置的GetValueOrDefault()方法替代手动三元判断,避免强转异常:
// 先将ViewBag值转为可空bool,空值默认返回false bool test = (ViewBag.boolean as bool?).GetValueOrDefault(); if (test) { <button type="submit" id="xxxx" class=""></button> }
3. 修复JSON反序列化异常
如果上述步骤无效,检查API返回的JSON字段格式:
- 若JSON中的
boolean字段为字符串格式的"true"/"false",而非标准布尔值,修改处理逻辑:
// 修改Model属性定义 [JsonProperty("boolean")] public string BooleanStr { get; set; } // 赋值时做类型转换 ViewBag.boolean = bool.TryParse(targetModel.BooleanStr, out var result) && result;
内容的提问来源于stack exchange,提问作者ericso
相关产品推荐
相关产品推荐

