MVC3 RadioButtonFor值未绑定到模型

时间:2012-09-20 08:14:39

标签: asp.net-mvc-3 binding model radiobuttonfor

我有一个MVC3 Razor表格。它有一个radiobutton列表和一些其他文本字段。当我按提交控制器发布操作时,获取视图模型,其中所有字段都正确设置,但RegionID除外。

型号:

    namespace SSHS.Models.RecorderModels
    {
        public class CreateViewModel
        {
             ...
             public int RegionID { get; set; }
             ...
        }
    }

控制器:

    namespace SSHS.Controllers
    {
        public class RecorderController : Controller
        {
            ...
            public ActionResult Create()
            {
                EntrantDBEntities db = new EntrantDBEntities();

                List Regions = new List(db.Region); 
                List Schools = new List(db.School);
                List Settlements = new List(db.settlement);

                CreateViewModel newEntr = new CreateViewModel();

                ViewBag.Regions = Regions;
                ViewBag.Schools = Schools;
                ViewBag.Settlements = Settlements;

                return View(newEntr);
            }

            [HttpPost]
            public ActionResult Create(CreateViewModel m)
            {
                EntrantDBEntities db = new EntrantDBEntities();

                Entrant e = new Entrant()
                {
                    FatherName = m.FatherName,
                    Lastname = m.LastName,
                    LocalAddress = m.LocalAddress,
                    Name = m.Name,
                    RegionID = m.RegionID,
                    PassportID = m.PassportID,
                    SchoolID = m.SchoolID,
                    SettlementID = m.SattlementID,
                    TaxID = m.TaxID,
                };

                db.Entrant.AddObject(e);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
    }

查看:

    @model SSHS.Models.RecorderModels.CreateViewModel
    @using SSHS.Models 

    @using (Html.BeginForm("Create", "Recorder", FormMethod.Post))
    {       
    
    
        @foreach (Region item in ViewBag.Regions)
        {
           
           @Html.RadioButtonFor(m => m.RegionID, item.RegionID)
           @Html.Label(item.RegionName) - @item.RegionID
           
        }
    
          ...
          ...    
    
    }

Create(CreateViewModel m)方法从所有文本框中正常获取数据,但RegionID始终为0。

1 个答案:

答案 0 :(得分:1)

您打算如何使用int填充单选按钮?它有两种状态:检查和不检查。你能告诉我们,你想做什么?制作广播组?将bool用于RadioButtonFor

<强>加了:

您需要写下这样的内容:CheckboxList in MVC3.0(在您的示例中,您将有单选按钮)

相关问题