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. 前端代码要改成:

 


 

 

posted @ 2021-03-11 10:44  katesharing  阅读(431)  评论(0)    收藏  举报