2012-09-20 27 views
1

我有一个MVC3剃刀形式。它有一个单选按钮列表和一些其他文本字段。当我按提交控制器后操作获取视图模型,其中所有字段正确布局,除RegionID。MVC3 RadioButtonFor的值没有绑定到模型

型号:

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 
      
     } 
    
      ... 
      ...  
    
    }

的创建(CreateViewModel m)方法通常从所有文本框获取数据,但RegionID始终为0.

+0

单选按钮用于真/假状态。根据你的情况你可能使用了选择列表。尝试在[HttpPost] Create方法中检查请求[“YourRegionRadioId”],如果它有任何值。 – 2012-09-20 08:21:27

+0

请求[“RegionSelect”]未设置为对象的实例 – RazorRunner

+0

现在尝试使用选择列表 – RazorRunner

回答

1

您打算如何填写单选按钮int?它有两个状态:检查与否。你能告诉我们,你想做什么?制作广播组?使用boolRadioButtonFor

补充:

你需要写是这样的:CheckboxList in MVC3.0(在你的例子中,你将有单选按钮)

+0

我想获得超过2个职位的广播组,并获得post方法中的选定位置。 – RazorRunner

+0

@Bill Mustdie你是什么意思'超过2个职位'? – webdeveloper

+0

[] Position1 [x] Position2 [] position3 ....是否可以使用标准的MVC助手? – RazorRunner