我有一个 MVC3 Razor 表单。它有一个单选按钮列表和一些其他文本字段。当我按下提交控制器发布操作时,获取视图模型,它的所有字段都设置正确,除了 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。