Между атрибутом и знаком равенства есть пробел.
Это
<input type="hidden" asp-for="DetailId" asp-line ="DetailId"/>
должно выглядеть так
<input type="hidden" asp-for="DetailId" asp-line="DetailId"/>
Я думаю, что XmlConvert имеет все методы для преобразования между типами общеязыковой среды выполнения и типами XML. Особенно XmlConvert.ToBoolean
дескрипторы точно булевы значения (допустимые строки равняются "1" или "верный" для истинного и "0" или "ложь" для лжи).
Используя CBool
вместо Boolean.Parse
должен добиться цели: хотя необходимо будет встроить его в try/catch
блок (который не требовался бы при использовании Boolean.TryParse
), это успешно преобразует большинство 'разумных' булевых значений, включая истинный/ложный и 0/1.
Редактирование: как указано в комментарии, этот ответ довольно бесполезен для программистов C#, поскольку CBool
VB-изм. Это отображается на Microsoft.VisualBasic.CompilerServices.Conversions::ToBoolean
, который не подходит для общего потребления. Который делает класс XMLConvert указанным в принятом ответе еще лучшая альтернатива.
Санируйте данные прежде, чем попытаться проанализировать его:
string InnerText = yourXmlNode.InnerText;
if (InnerText.Equals("0"))
InnerText = "false";
else if (InnerText.Equals("1"))
InnerText = "true";
Любая другая запись, чем верный , ложь , 0 или 1 все еще выдаст исключение "Неверного формата" (как это должно быть).