我有一个注册表单,显示用户名称(文本框),电子邮件(文本框)和分区(选择列表).名称和电子邮件已预先填充(我正在使用Windows身份验证,Intranet应用程序),我想将DropDown中的SelectedValue作为Int32发送到我的控制器,我不想再发送整个SelectList.这个清单现在很小,但会增长到相当大的规模.
我是一个名为的类RegistrationViewModel,它包含这些字段的公共属性.但是,当我SelectList用于DivisionList时,我收到此错误:No parameterless constructor defined for this object..
如果我更改Type,它没有问题,但是Division是null或0.有没有办法将SelectedValue从DropDown传递给Controller Action作为Int32?
我不确定我在做什么,我一直在使用MVC大约48小时,看过PDF,TechEd和TechDays视频.
道歉,这是我的控制器代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Register(RegistrationViewModel rvm)
{
IApplicationContext context = ContextRegistry.GetContext();
IValidationErrors errors = new ValidationErrors();
IValidator validator = (IValidator)context.GetObject("RegistrationValidator");
bool valid = validator.Validate(rvm, errors);
if (valid)
repo.SaveRegistration();
else
ViewData["DivisionList"] = repo.GetDivisions();
return View(rvm);
}
Run Code Online (Sandbox Code Playgroud)
RegistrationViewModel 类
public class RegistrationViewModel
{
public string Name { get; set; }
public string Email { get; set; }
//public SelectList DivisionList { get; private set; …Run Code Online (Sandbox Code Playgroud)