错误无法从“输出字符串”转换为“输出整数”

时间:2019-08-23 20:41:05

标签: c# asp.net-mvc

我正在使用 ASP.NET MVC 开发我的第一份注册表格,并且出现以下错误

  

参数2:无法从“输出字符串”转换为“输出整数”

var ticketPriorityInput = "ALTO";

if (int.TryParse(Request.Form["ticketPriorityInput"], out ticketPriorityInput) == false)
{        
}

image error

ticketPriorityInput的类型为string

之所以这样做,是因为我需要验证保存ticketPriorityInput字段时是否默认将其与字符串“ ALTO”一起保存,您可以告诉我这是最好的方法或如何可以解决

我会更好地解释一种形式,但是根据会话变量的不同,某些字段将被加载,ticketPriorityInput必须同时进入另一个域,不同之处在于我还需要进入ticketPriorityInput,但是没有输入,我需要将其默认存储为“ ALTO”

3 个答案:

答案 0 :(得分:2)

var ticketPriorityInput是显式字符串,因为您已将其初始化为字符串。

尝试:

var ticketPriorityInput = 0;

if (int.TryParse(Request.Form["ticketPriorityInput"], out ticketPriorityInput) == false)
{
}

如果您不想更改ticketPriorityInput,请创建一个不同的变量,该变量是ticketPriorityInput要保存到的int。

答案 1 :(得分:0)

如果我对您的理解正确,则希望将Request.Form["ticketPriorityInput"]的值转换为int,如果成功,则将结果保存在ticketPriorityInput中;如果不成功,则要{{1 }}包含字符串ticketPriorityInput

因此,您仍然必须使用两个变量;无法解决将"ALTO"传递给int方法的要求。但是您可以将int.TryParse()设置为ticketPriorityInput类型并使用:

dynamic

现在,如果转换成功,dynamic ticketPriorityInput = "ALTO"; if (int.TryParse(Request.Form["ticketPriorityInput"], out int tInt)) { ticketPriorityInput = tInt; } 将包含转换后的ticketPriorityInput,否则将包含值integer

答案 2 :(得分:-1)

在阅读所有用户的评论后,尽管进行了更清晰的解释,但没有人理解我的问题,我以这种方式找到了解决问题的方法

var ticketPriorityInput = Request.Form["ticketPriorityInput"];
var ticketPriorityInputByDefault = "ALTO";

if (String.IsNullOrEmpty(ticketPriorityInput)){
   ticketPriorityInput = ticketPriorityInputByDefault;
}