Asp.net mvc MVC 5.0<;格式异常>;

Asp.net mvc MVC 5.0<;格式异常>;,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,在我的MVC应用程序“TwentyFifth”中,模型是: public class Student { public string StudentName { get; set; } public int StudentID { get; set; } public string FatherName { get; set; } } 同一项目中的方法支持类为: public void EditSupport(int id, Studen

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

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();
        }
最后,控制器如下所示:

[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");
        }
问题:当我使用更改控制器时,为什么会出现格式异常 ->


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

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

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

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

希望能帮到您一个小忙,我会使用。像这样连接SQL命令将使您容易受到SQL注入攻击。谢谢,mate,但我仍然不太清楚value int std.Student即使在转换后也包含以逗号结尾的字符串值(例如“0”)的可能原因。
public ActionResult Edit_Post(int id, FormCollection formCollector, int StudentID)
{
    ...
    std.StudentID = StudentID;
    ...
}