MVC 5.0 <format exception =“”>

时间:2015-04-25 18:10:35

标签: asp.net-mvc model-view-controller

在我的MVC应用程序“TwentyFifth”中,Model是:

public class Student {
        public string StudentName { get; set; }
        public int StudentID { get; set; }
        public string FatherName { get; set; }
    }

方法是同一项目中的支持​​类:

public void EditSupport(int id, Student std2)
        { 
            SqlConnection Con = new SqlConnection("Data Source=my;Initial Catalog=DB;Integrated Security=True");

            SqlCommand Com = new SqlCommand("update StudentT set StudentName='"+ std2.StudentName + "', FatherName='" + std2.FatherName + "' where StudentID=" + id + "", Con);

            Con.Open();
            Com.ExecuteNonQuery();
        }

最后,Controller就像:

[HttpPost]
        [ActionName("Edit")]
        public ActionResult Edit_Post(int id, FormCollection formCollector)
        {            
            Student std = new Student();

            std.StudentID = id;
            std.StudentName = formCollector["StudentName"].ToString();
            std.FatherName = formCollector["FatherName"].ToString();

            BussinessNdataLayer bl = new BussinessNdataLayer();

            bl.EditSupport(id, std);

            return RedirectToAction("Index");
        }

问题:当我更改Controller时,为什么会出现格式异常 - &GT;

std.StudentID = Convert.ToInt32(formCollector["StudentID"]);

注意:在断点处,我在std.StudentID中找到了字符串值但是使用了逗号(,)感谢您的回复。

1 个答案:

答案 0 :(得分:0)

默认的模型绑定器将为您处理所有这些。尝试将代码更改为此,以便模型绑定器为您执行转换:

public ActionResult Edit_Post(int id, FormCollection formCollector, int StudentID)
{
    ...
    std.StudentID = StudentID;
    ...
}

最好不要直接访问表单集合,而是使用强类型的ViewModels和action方法参数。