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を数えます。
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");}
}