为什么字符串类型没有转换为int类型?

时间:2015-07-27 13:10:39

标签: c# asp.net-mvc

我想添加两个数字。我从文本框中的按钮获取值。我还成功地将字符串拆分为子字符串,并将这些子字符串的值存储在变量中。但我无法将字符串类型转换为整数类型。这导致连接不是附加的。 注意 : 我正在使用MVC来执行此任务。在模型中,value1和value2是模型中的字符串类型 这是我的代码片段:

if (button == "1"){
    if (model.textBox == "" || model.textBox == null || model.textBox.ToLower().Contains("please enter value")){
        model.textBox = "1";
    } else {
        model.textBox += "1";
    }
}
if (button == "2") {
    if (model.textBox == "" && model.textBox == null) {
        model.textBox = "2";
    } else {
        model.textBox += "2";
    }
if (button == "+") {
    if (model.textBox == "" && model.textBox == null){
        model.errormsg = "Please enter a number ";
    } else {
        model.textBox += "+";
    }
if (button == "=") {
    if (model.textBox.Contains("+")) {
        model.value1 = (model.textBox.Split('+'))[0];
        int value1 = int.Parse(model.value1);
        model.value2 = (model.textBox.Split('+'))[1];
        int value2 = int.Parse(model.value2);
         model.textBox = model.value1 + model.value2;
    }
return View(model); 

4 个答案:

答案 0 :(得分:5)

如果我找到了你所要做的就是:

model.textBox = (value1 + value2).ToString();

答案 1 :(得分:1)

model.textBox的类型为string,因此,当您执行model.textBox += "1";时,唯一可能的操作是连接。

要将它们添加为整数,首先需要将textBox转换为int

以下内容将起作用:

model.textBox = (int.Parse(model.textBox) + 1).ToString();

答案 2 :(得分:0)

尝试使用int.Parse(textBox.Text)

如果字符串中有非数字字符,它将会崩溃,但是没有任何试图捕获块无法解决。

希望这有帮助!

答案 3 :(得分:0)

 if (button == "=") {
    if (model.textBox.Contains("+")) {
        model.value1 = (model.textBox.Split('+'))[0];
        int value1 = int.Parse(model.value1);
        model.value2 = (model.textBox.Split('+'))[1];
        int value2 = int.Parse(model.value2);
         model.textBox = model.value1 + model.value2;
    }

将以上代码段替换为以下代码段:

if (button == "=")
            {
                if (model.textBox.Contains("+"))
                {
                    model.value1 = (model.textBox.Split('+'))[0];

                    model.value2 = (model.textBox.Split('+'))[1];

                    model.textBox1 = (int.Parse(model.value1) + int.Parse(model.value2)).ToString();


                }