我需要使用dropdownlist到razor和相关的对象到模型对象。
我想保留对象的默认选定值,但它不起作用。
有没有人能告诉我实现这一点的最好方法--在DTO属性、控制器动作和剃刀语法中保留什么?
下面是我目前的情况:
public class StateDTO
{
public int ID { get; set; }
public string Name { get; set; }
}
public class RegisterModel
{
[Required]
[Display(Name = "User name", Order = 2)]
public string UserName { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password", Order = 3)]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm password", Order = 4)]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Display(Name = "Email Address", Order = 1)]
[DataType(DataType.EmailAddress)]
[Required(AllowEmptyStrings = false, ErrorMessage = "Please enter value")]
public string Email { get; set; }
public IEnumerable<SelectListItem> States { get; set; }
public SelectListItem State { get; set; }
}
public ActionResult Register()
{
RegisterModel r = new RegisterModel();
IList<StateDTO> s = new List<StateDTO>();
s.Add(new StateDTO() { ID = 1, Name = "CA" });
s.Add(new StateDTO() { ID = 2, Name = "LA" });
s.Add(new StateDTO() { ID = 3, Name = "AR" });
r.State = new SelectListItem() { Text = s[2].Name, Value = s[2].ID.ToString(), Selected = true };
r.States = new SelectList(s, "ID", "Name",r.State);
return View(r);
}视图包含以下相关内容:
<div class="editor-label">
@Html.LabelFor(model => model.State)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.State, Model.States)
@Html.ValidationMessageFor(model => model.State)
</div>请建议我应该如何更改为模型对象,控制器和剃刀视图,以实现下拉列表的默认选择…任何最好的方法。
谢谢
发布于 2014-07-20 19:30:15
我已经按照下面的链接修改了这些东西,它已经成功了。
dropdownlist set selected value in MVC3 Razor
在模型中,更改了属性类型,如下所示:
public IEnumerable<SelectListItem> States { get; set; }
public int State { get; set; }控制器操作:
IList<StateDTO> s = new List<StateDTO>();
s.Add(new StateDTO() { ID = 1, Name = "CA" });
s.Add(new StateDTO() { ID = 2, Name = "LA" });
s.Add(new StateDTO() { ID = 3, Name = "AR" });
r.State = 3;
r.States = new SelectList(s, "ID", "Name",3);视图如下:
<div class="editor-label">
@Html.LabelFor(model => model.State)
</div>
<div class="editor-field">
@Html.DropDownListFor(model => model.State, Model.States)
@Html.ValidationMessageFor(model => model.State)
</div>It works...got默认选择。
谢谢
https://stackoverflow.com/questions/24849828
复制相似问题