My select taghelper가 컨트롤러에 선택된 항목을 전달하지 않습니다. 카운트는 항상 0입니다. 어떤 방향으로 부탁드립니다. 내 모델.net core 1.1 select taghelper pass mulitple 컨트롤러에 대한 목록 항목 선택 항상 카운트 0 표시
namespace SandBoxSelectList.Models
{
public class Entry
{
[Key]
public int EntryID { get; set; }
public string EventName { get; set; }
public List<EntryClass> EntryClasses { get; set; }
}
public class EntryClass
{
[Key]
public int EntryClassId { get; set; }
public string ClassName { get; set; }
public int Classcode { get; set; }
}
}
내 컨트롤러
// GET: Entries/Create
var ec = new List<EntryClass>
{
new EntryClass
{
Classcode = 1,
ClassName = "NameofOne",
EntryClassId=1
},
new EntryClass
{
Classcode = 2,
ClassName = "NameofRTwo",
EntryClassId =2
},
new EntryClass
{
Classcode = 3,
ClassName = "NameofRThree",
EntryClassId = 3
},
new EntryClass
{
Classcode = 4,
ClassName = "NameofFour",
EntryClassId = 4
},
};
ViewBag.FillForDropDown = ec.Select(x => new SelectListItem()
{
Text = x.ClassName,
Value = x.EntryClassId.ToString()
});
return View();
후 컨트롤러 항목을 만들 수는 ENTRYID = 0, EventName을 = 반환 "올바른", EntryClasses는 = 0을 계산합니다.
// POST: Entries/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult>
Create([Bind("EntryID,EventName,EntryClasses")] Entry entry)
{
if (ModelState.IsValid)
{
_context.Add(entry);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(entry);
}
Create.cshtml
form asp-action="Create">
<div class="form-horizontal">
<h4>Entry</h4>
<hr />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="EventName" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="EventName" class="form-control" />
<span asp-validation-for="EventName" class="text-danger"></span>
</div>
</div>
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="EntryClasses" class="col-md-2 control-label></label>
<select class="col-md-10"
id="EntryClassID" asp-for="EntryClasses"asp-items="@ViewBag.FillForDropDown"
name="EntryClasses" selected="selected" multiple="multiple">
</select>
<span asp-validation-for="EntryClasses" class="text-danger"></span>
</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>
</form>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}