![](/img/trans.png)
[英]asp.net mvc - Populate a dropdownlist from a seperate model/Database Table
[英]populate radiobuttonlist from database table in asp.net mvc
我想创建一个如上所示的表单,
public partial class UserGroup
{
public string UserGroup_ID { get; set; }
public string UserGroupNameEn { get; set; }
}
因此填充此用户组并获取我创建的新模型的填充数据(因此它可以应用于查看(第1张图像))
这是控制器类
[HttpGet]
public ActionResult ProductFields_Create()
{
var model = new ProductFields
{
LisGroups = GetUserGroupListEn()
};
return View(model);
}
public MultiSelectList GetUserGroupListEn()
{
return new MultiSelectList(db.UserGroup.ToList(), "UserGroup_ID", "UserGroupNameEn");
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ProductFields_Create(ProductFields product_fields)
{
...........
}
这是第一张图片的模型类
public class ProductFields
{
public string ProductFieldID { get; set; }
public string ProductFieldNameEn { get; set; }
public string ProductFieldNameAr { get; set; }
public string ProdcutFieldDiscriptionEn { get; set; }
public string ProductFieldDiscriptionAr { get; set; }
public List<UserGroup> LisGroups { get; set; }
[Required]
public string SelectedGroupID { get; set; }
}
上面视图的视图
@model Project_Name.Models.ProductFields
@using (Html.BeginForm())
{
<fieldset>
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
.....
<div class="form-group">
<div>
@Html.ValidationMessageFor(x => x.SelectedGroupID)
foreach (var group in Model.LisGroups)
{
<div>
@Html.RadioButtonFor(x => x.SelectedGroupID, group.UserGroup_ID, new { id = "emp" + group.UserGroup_ID })
@Html.Label("emp" + group.UserGroup_ID, employee.Label)
</div>
}
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</fieldset>
}
但在这里,我遇到了红色波浪线的重大错误
当前上下文中不存在名称“group”
无法将类型'System.Web.Mvc.MultiSelectList'隐式转换为'System.Collections.Generic.List'
您不需要MultiSelectList
(这是在ListBox()
和ListBoxFor()
方法中使用的类)。 错误的原因是您的属性是List<UserGroup> LisGroups
但您尝试为其分配类型的MultiSelectList
。
将您的GET方法更改为
[HttpGet]
public ActionResult ProductFields_Create()
{
var model = new ProductFields
{
LisGroups = db.UserGroup.ToList();
};
return View(model);
}
附注:该属性可以是public IEnumerable<UserGroup> LisGroups { get; set; }
public IEnumerable<UserGroup> LisGroups { get; set; }
public IEnumerable<UserGroup> LisGroups { get; set; }
,然后删除的不必要的使用.ToList()
然后在视图中
@foreach (var group in Model.LisGroups)
{
<div>
<label>
@Html.RadioButtonFor(x => x.SelectedGroupID, group.UserGroup_ID, new { id = "" })
<span>@group.UserGroupNameEn</span>
</label>
</div>
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.