MVC ViewBag的值为bool类型时的问题
问题描述:当ViewBag.Value的值为bool类型时,如何把生成的HTML中的value值显示成我们定义的true/false,而不是默认的“value”或不显示?
一、发现问题
1. 后台代码:
2. 前台代码:
3. 按F12查找生成的HTML如下:
发现生成HTML时,其中value值并不是我们期待的true跟false,当true时value值为"value"; 当false时,value没显示。(我是用chrome测试的)
二、分析、解决问题
问题:那如何把这些显示值改成我们所期待的显示成true或false?
解决方法:用.ToString()
解决代码如下:
1. 后台代码如上不变
2.前台代码改成:
3.这时候按F12查找生成的HTML如下:
这时候返回的就是我们想要的true,false值了。
三、又发现问题
但是这边又有一个问题,如果ViewBag.Value的值是null时,会抛出“Cannot perform runtime binding on a null reference”异常(但不会出直接在出错的那边那边提示)??
测试如下:
1. 后台代码加一个空值来测试:

2. 这时会在页面那边抛出异常:

四、分析、解决问题
原因是:要用到ToString()这个方法时,一定要先判断当前值是否为空。
解决方法就是一定要先判断空值
1. 前端代码要改成:

本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/keeplearningandsharing/p/14516415.html