如何为布局页的ViewData["Description"]添加判断条件?
解决ViewData["Description"]的判断问题
你的代码存在两个核心问题:
- 错误地将描述文本当作布尔值解析,
ViewData["Description"]存储的是页面描述内容,不是布尔类型的标记; - 当页面未设置该属性时,
ViewData["Description"]为null,直接调用ToString()会触发空引用异常。
正确的判断写法
方法一:显式检查键存在性与值非空
@{ if (ViewData.ContainsKey("Description") && !string.IsNullOrEmpty(ViewData["Description"]?.ToString())) { @ViewData["Description"] } else { @("Bilgisayarınızda yaşadığınız her türlü teknik sorunu çözmek için profesyonel bir çözüm arıyorsanız, doğru yerdesiniz.") } }
方法二:使用null合并运算符简化代码
如果只需要判断值是否为null或空,也可以用更简洁的写法:
@(ViewData["Description"] ?? "Bilgisayarınızda yaşadığınız her türlü teknik sorunu çözmek için profesyonel bir çözüm arıyorsanız, doğru yerdesiniz.")
说明
ViewData.ContainsKey("Description")用于确认当前页面是否设置了该属性;ViewData["Description"]?.ToString()使用空条件运算符,避免null时调用ToString()报错;- null合并运算符
??会在左侧值为null时,直接使用右侧的默认文本。
内容的提问来源于stack exchange,提问作者sandox
相关产品推荐
相关产品推荐

