-1

我必须支持一些 aspx 页面,而且我对 apsx 还是很陌生。在下面的情况下 allWOs = "false",并最终被传递给一个需要布尔值的方法。如何需要将字符串转换为布尔值?下面提出了一种可行的方法吗?

代码:

var allWOs = "<%= allWorkOrders %>";
BillingWork.MovePeriod(allWOs, MovePeriod_Callback);

错误:

Unable to cast object of type 'AjaxPro.JavaScriptString' to type 'AjaxPro.JavaScriptBoolean'.

建议的:

 var allWOs = $("#<%= allWorkOrders %>").val() != null ? $("#<%= allWorkOrders %>").prop('checked') : false;
4

1 回答 1

-1

在使用var

var allWOs = "...";

编译器将字符串确定为类型。因此,要将 boolean 传递给您需要将 string 转换为 boolean的方法,例如

bool allWOs = System.Convert.ToBoolean("<%= allWorkOrders %>");

如果 allWos 没有在任何地方使用,除了该方法,并且不需要对 allWorkOrders 进行额外验证,那么最简单的方法是使用上面建议的“true”或“false”来测试相等性。

BillingWork.MovePeriod(allWOs == "true", MovePeriod_Callback);
于 2021-04-24T19:15:59.347 回答