我正在使用 ASP.NET MVC 开发我的第一份注册表格,并且出现以下错误
参数2:无法从“输出字符串”转换为“输出整数”
var ticketPriorityInput = "ALTO";
if (int.TryParse(Request.Form["ticketPriorityInput"], out ticketPriorityInput) == false)
{
}
ticketPriorityInput
的类型为string
之所以这样做,是因为我需要验证保存ticketPriorityInput
字段时是否默认将其与字符串“ ALTO”一起保存,您可以告诉我这是最好的方法或如何可以解决
我会更好地解释一种形式,但是根据会话变量的不同,某些字段将被加载,ticketPriorityInput
必须同时进入另一个域,不同之处在于我还需要进入ticketPriorityInput
,但是没有输入,我需要将其默认存储为“ ALTO”
答案 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;
}