我有一个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.
单选按钮用于真/假状态。根据你的情况你可能使用了选择列表。尝试在[HttpPost] Create方法中检查请求[“YourRegionRadioId”],如果它有任何值。 – 2012-09-20 08:21:27
请求[“RegionSelect”]未设置为对象的实例 – RazorRunner
现在尝试使用选择列表 – RazorRunner