我在Razor中有这个代码:
int num1 = int.Parse(Request["ddl" + item.MovieID]);
我收到错误:Input string was not in a correct format.
如何解决此问题?
我也尝试过:
string s = "ddl" + item.MovieID;
int num1 = int.Parse(Request[s]);
但我仍然得到同样的错误。这有效:
int num1 = int.Parse(Request["ddl1"]);
答案 0 :(得分:1)
密钥可能不存在,并返回null。或者,该键的值不是“整数格式” - 例如,它无法解析“$ 10.00”。
答案 1 :(得分:0)
将您的代码修改为此
string s = "ddl" + item.MovieID;
string key = Request[s];
int num1 = int.Parse(key);
在第一行放置一个断点,然后单步执行代码。如果您在单步执行代码时检查s
和key
,则很快就会发现问题。
答案 2 :(得分:0)
如果文化不正确,这是一个常见的错误。请确保字符串(要解析)符合当前的线程文化。
理想情况下,如果数据与文化无关,我们应该使用 int.Parse(data,CultureInfo.InvariantCulture)
。