2015-11-11 7 views
5

enter image description here移入RadioButtonListの

は、

リストユーザーグループテーブル enter image description here

public partial class UserGroup 
{ 
    public string UserGroup_ID { get; set; } 
    public string UserGroupNameEn { get; set; } 
} 
にaccodrdingビューアのユーザーグループを移入する必要があります

このユーザーグループにデータを入力し、新しいモデルを作成しました(ビューに適用できるように(1番目の画像))

01私は論文この

がこの

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

ビューページ最初の画像のモデルクラスであるため、コントローラクラスであることを確認するためにオーバーフローquestion 1question 2スタック続い

@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' to 'System.Collections.Generic.List'

enter image description here

+0

@StephenMueckeで、それを.ToList()

の不必要な使用を削除します。

[HttpGet] public ActionResult ProductFields_Create() { var model = new ProductFields { LisGroups = db.UserGroup.ToList(); }; return View(model); } 

サイドノートに自分のGETメソッドを変更

グループAを選択するとグループAを渡す必要があります。 – kez

答えて

4

あなたは必要ありませんMultiSelectListListBox()ListBoxFor()方法で使用するためのクラスがあります)。そしてそのエラーの理由は、あなたの財産がList<UserGroup> LisGroupsですが、タイプMultiSelectListを割り当てようとしています。プロパティはpublic IEnumerable<UserGroup> LisGroups { get; set; }可能性があり、その後、はいビュー

@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

まだ '名前 'グループ'がカレンには存在しませんtコンテキスト 'エラー – kez

+0

ビューで意味ですか? –

+0

ええ、cshtmlのビューページで、まだ赤いsquiqqly行でこのエラーが発生しています – kez