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