2016-04-06 14 views
0

Asp.Net Mvc 6のドロップダウンリストでこれらのIDをバインドするために、すべてのUserIdをAspNetUsersのテーブルから取得しようとしていますが、方法を知っている。あなたは私を助け、それを行う方法を示すことができますか?例えば :AspNetUsersからUserIdを取得してDropDownListにバインドする方法Asp.Net Mvc 6

public IEnumerable<SelectListItem> AspNetUsers { get; set; } 
private IEnumerable<SelectListItem> GetAllUserId() 
    { 

     return _context.UserClaims.ToList().Select(users => new SelectListItem 
     { 
      Text = users.UserId.ToString(), 
      Value = users.UserId.ToString() 
     }); 
    } 

//

public IActionResult Create() 
    { 
     // todo: Get all User Id in DropDownList 
     AspNetUsers = GetAllUserId(); 
     ViewBag.UserClaims = AspNetUsers; 

     return View(); 
     //return Content(""); 
    } 
public IActionResult Create(Message message) 
    { 
     // todo: validate 
     //var message = new Message 
     //{ 
     // MessageTitle = messageTitle, 
     // MessageContent = messageContent 
     //}; 
     if(!ModelState.IsValid) 
     { 
      // todo: Get all User Id in DropDownList 
      AspNetUsers = GetAllUserId(); 
      ViewBag.UserClaims = AspNetUsers; 

      // todo: store 
      message.Created = DateTime.Now; 

      if (_context.Messages.Any(ms => ms.MessageTitle.Equals(message.MessageTitle))) 
      { 
       return RedirectToAction("Index", new { MessageFlag = MessagesMessageId.MessageExits }); 
      } 
      else 
      { 
       var Msg = new Message 
       { 
        UserId = message.UserId, 
        Created = message.Created, 
        MessageTitle = message.MessageTitle, 
        MessageContent = message.MessageContent 
       }; 
       _context.Messages.Add(Msg); 
       int i = _context.SaveChanges(); 
       if (i == 1) 
       { 
        return RedirectToAction("Index", new { MessageFlag = MessagesMessageId.MessageSentSuccess }); 
       } 
       else 
       { 
        return RedirectToAction("Index", new { MessageFlag = MessagesMessageId.Error }); 
       } 
      } 
     } 
     return View(message); 

} // AspNetUsersテーブルからユーザIDを追加するために表示

 <div class="form-group"> 
      <label asp-for="UserId" class="col-md-2 control-label"><b>User Id:</b></label> 
      <div class="col-md-10"> 
       @*<input type="text" name="messageContent" id="messageContent" class="form-control" />*@ 
       <select asp-for="UserId" asp-items="@ViewBag.UserClaims" class="form-control"></select> 
      </div> 
     </div> 
     <div class="form-group"> 
      <label asp-for="Created" class="col-md-2 control-label"><b>Create Date:</b></label> 
      <div class="col-md-10"> 
       @*<input type="text" name="messageContent" id="messageContent" class="form-control" />*@ 
       <input asp-for="Created" class="form-control" /> 
       <span asp-validation-for="Created" class="text-danger" /> 
      </div> 
     </div> 
     <div class="form-group"> 
      @Html.LabelFor(model => model.MessageTitle, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.TextAreaFor(model => model.MessageTitle, new { @class = "form-control", placeholder = "Subject" }) 
       @Html.ValidationMessageFor(model => model.MessageTitle) 
      </div> 
     </div> 

     <div class="form-group"> 
      @Html.LabelFor(model => model.MessageContent, new { @class = "control-label col-md-2" }) 
      <div class="col-md-10"> 
       @Html.TextAreaFor(model => model.MessageContent, new { @class = "ckeditor", placeholder = "Content" }) 
       @Html.ValidationMessageFor(model => model.MessageContent) 
      </div> 
     </div> 
     <div class="form-group"> 
      <div class="col-md-offset-2 col-md-10"> 
       <input type="submit" value="Submit" class="btn btn-primary" /> 
      </div> 
     </div> 
    </div> 

}

答えて

0

の作成を作成し、次のようにコード化する必要があります:

public IEnumerable<SelectListItem> AspNetUsers { get; set; } 

プライベートのIEnumerable GetAllUserId(){

return _context.Users.ToList().Select(users => new SelectListItem 
    { 
     Text = users.Id.ToString(), 
     Value = users.Id.ToString() 
    }); 
} 

は、コントローラの作成//

// todo: Get all User Id in DropDownList 
     AspNetUsers = GetAllUserId(); 
     ViewBag.Users = AspNetUsers; 

次のように//ビューを作成します。

<div class="form-group"> 
     <label asp-for="UserId" class="col-md-2 control-label"><b>User Id:</b></label> 
     <div class="col-md-10"> 
      <select asp-for="UserId" asp-items="@ViewBag.Users" class="form-control"></select> 
     </div> 
    </div> 
関連する問題