-2

我有以下问题并尝试了多种变体来尝试解决此问题:

bool selectOnlyPublished = Convert.ToBoolean((CMSContext.ViewMode == ViewModeEnum.LiveSite).ToString().ToLower());
TreeNode blogNode = BlogHelper.GetParentBlog(aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);

但它仍然抛出:System.FormatException:字符串未被识别为有效的布尔值。错误。

我尝试了以下方法:

  • Boolean.Parse()
  • Boolean.Parse(string.ToLower())
  • 甚至硬编码布尔类型的值。

但他们都给了我同样的错误。

4

4 回答 4

8

为什么不这样做:

bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;
TreeNode blogNode = BlogHelper.GetParentBlog(
    aliasPath, CMSContext.CurrentSiteName, selectOnlyPublished);
于 2013-05-31T15:30:57.153 回答
2

为什么要将结果转换为CMSContext.ViewMode == ViewModeEnum.LiveSite布尔值?该代码的结果将是一个布尔类型。你可以这样做:

bool selectOnlyPublished = CMSContext.ViewMode == ViewModeEnum.LiveSite;

要回答您的原始问题,结果Convert.ToBoolean

如果 value 等于 TrueString,则为 true;如果 value 等于 FalseString 或 null,则为 false。

TrueStringisTrueFalseStringis的值False。取下你ToLower的字符串,它应该可以正确解析。

于 2013-05-31T15:31:52.280 回答
1

如果你尝试会发生什么

TreeNode blogNode = BlogHelper.GetParentBlog(
    aliasPath, CMSContext.CurrentSiteName, 
    (CMSContext.ViewMode == ViewModeEnum.LiveSite)
);

我假设CMSContext.ViewMode的数据类型是ViewModeEnum

于 2013-05-31T15:45:39.520 回答
0

你为什么首先解析布尔值

bool selectOnlyPublished = (CMSContext.ViewMode == ViewModeEnum.LiveSite);

应该做的工作

于 2013-05-31T15:31:59.303 回答