我遇到了以下问题并尝试了多种变体来尝试解决此问题:
bool selectOnlyPublished = Convert.ToBoolean((CMSContext.ViewMode == ViewModeEnum.LiveSite).ToString().ToLower());
TreeNode blogNode = BlogHelper.GetParentBlog(aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);
但它仍然抛出:System.FormatException:String未被识别为有效的布尔值。错误。
我尝试了以下内容:
但他们都给了我同样的错误。
答案 0 :(得分:8)
为什么不这样做:
bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;
TreeNode blogNode = BlogHelper.GetParentBlog(
aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);
答案 1 :(得分:2)
为什么要将CMSContext.ViewMode == ViewModeEnum.LiveSite
的结果转换为bool?该代码的结果已经是bool类型。你可以这样做:
bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;
要回答原始问题,Convert.ToBoolean
的结果是
如果value等于TrueString,则返回true;如果value等于FalseString或null,则返回false。
TrueString
的值为True
,FalseString
的值为False
。取下你的字符串上的ToLower
,它应该正确解析。
答案 2 :(得分:1)
如果您尝试
会发生什么TreeNode blogNode = BlogHelper.GetParentBlog(
aliasPath, CMSContext.CurrentSiteName,
(CMSContext.ViewMode == ViewModeEnum.LiveSite)
);
我假设 CMSContext.ViewMode 的数据类型是 ViewModeEnum ?
答案 3 :(得分:0)
为什么要在第一时间解析布尔值
bool selectOnlyPublished = (CMSContext.ViewMode == ViewModeEnum.LiveSite);
应该做的工作