添加用户视图页中的性别代码:
性 别:
<input type="radio" name="Sex" value="1" checked="checked" />男
<input type="radio" name="Sex" value="2" />女<br /><br />
控制器中的代码:
public ActionResult DoAdd()
{
StudentScore ss = new StudentScore();
ss.StudentNumber = Convert.ToInt32(Request["StudentNumber"].Trim());
ss.Name = Request["Name"].Trim();
ss.Password = Convert.ToInt32(Request["Password"].Trim());
ss.Age = Convert.ToInt32(Request["Age"].Trim());
ss.IsDelete = false;
ss.Chinese = Convert.ToDouble(Request["Chinese"].Trim());
ss.English = Convert.ToDouble(Request["English"].Trim());
ss.Math = Convert.ToDouble(Request["Math"].Trim());
if (Request.Form["Sex"].Equals( "true"))
{
ss.Sex = true;
}
else
{
ss.Sex = false;
}
db.Set<StudentScore>().Attach(ss);
db.Entry(ss).State = EntityState.Added;
if (db.SaveChanges() == 0)
{
return RedirectToAction("Search", "AdminService");
}
return RedirectToAction("Search", "AdminService");
}
请问关于性别的获取问题如何解决?谢谢!!
ss.Sex=Request.Form["Sex"]=="1";//不懂你true/false表示什么,如果true是男就是这个,如果是女就是改为2
先查看页面提交过来的是什么,然后在Request.Form["Sex"],根据数字或者true/false判断都可以
问题已解决:radiobutton是通过name来分组的,也就是说,使用相同的名字的radio,它们才是单选的,如果名字不同的radio,是不具备这个效果的,这个是第一要点。
第二,针对不同的radio(name相同),设置不同的value,当表单提交时就会提交已选择的radio的值。
第三,跟checkbox进行比较,当多个checkbox使用相同名字的时候,在MVC里,会形成数组。
一般用单选按钮来实现,可定义男 value=1,女 value=0;表单提交时js判断哪个按钮被选中将按钮的value值作为参数直接传到后台代码插入数据库。你上面的写法还是web from 的写法由后台判断。
为什么不直接传Model进去呢