2015-11-11 139 views
5

enter image description here填入单选按钮列表

我想创建如上形式,

还具有填充浏览器用户组accodrding到群组enter image description here

public partial class UserGroup 
{ 
    public string UserGroup_ID { get; set; } 
    public string UserGroupNameEn { get; set; } 
} 

因此填充此用户组并获取填充的数据我创建了新模型(因此它可以应用于查看(第一个图像))

我跟着论文堆栈溢出question 1question 2使这个

这是此

[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; } 
} 

的ViewPage以上视图

@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> 
} 

但在这里,我发现了重大错误用红色波浪线

名称“组”并没有在当前的背景下存在

enter image description here

无法隐式转换类型'System.Web.Mvc.MultiSelectList'到'System.Collections.Generic.List'

enter image description here

+0

@StephenMuecke是它是,一旦我选择了A组,它应该通过组别,ID – kez

回答

4

您不需要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; },然后删除的.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> 
} 
+0

我仍然得到'名字'组'在curren中不存在t上下文“错误 – kez

+0

您是否认为在视图中? –

+0

耶在cshtml视图页,我仍然得到这个错误红色squiqqly行 – kez