MVC CORE 多選CHECKBOX,並存入文字
這個需求是希望使用者多選CHECKBOX後
把CHECKBOX的文字存入
所以
欄位不是單純的BOOL型態
試了一下
還是用JS的事件來處理比較快
在按下按鈕後觸發update事件
在update事件去組出使用者所選擇的CHECKBOX的文字
然後塞到 @Html.HiddenFor(model => model.QUESTION1)
而CHECKBOX的資料一樣是用ViewBag來處理
controller
public IActionResult Create()
        {
            
            var STATUSList = new List<SelectListItem>()
            {
                new SelectListItem {Text="狀況1", Value="1" },
                new SelectListItem {Text="狀況2", Value="3" },
                new SelectListItem {Text="狀況3", Value="3" },
              
            };
            // Store your model in the ViewBag
            ViewBag.STATUSList = STATUSList;
            return View();
        }
view
 <div class="form-group">
                <label asp-for="QUESTION1" class="control-label"></label>
                @foreach (var STATUS in ViewBag.STATUSList)
                {
                    <div style="padding-right:15px;margin-left:20px;width: 1000px;">
                        <input id="@STATUS.Text" type="checkbox" name="STATUS" value="@STATUS.Value" />
                        <label for="@STATUS.Text">
                            @STATUS.Text
                        </label>
                    </div>
                }
                @Html.HiddenFor(model => model.QUESTION1)
                @*<input asp-for="QUESTION1" class="form-control" />*@
                <span asp-validation-for="QUESTION1" class="text-danger"></span>
 </div>
<div class="form-group">
                <input type="submit" value="Create" class="btn btn-primary" onclick="update()" />
</div>
<script>
    function update(arg) {
        var CHECKBOXLIST = ""
        //Iterating the collection of checkboxes which checked marked
        $('input[type=checkbox][name=STATUS]').each(function () {
            if (this.checked) {
                CHECKBOXLIST = CHECKBOXLIST + $(this).val() + ","
                //assign set value to hidden field
                $('#QUESTION1').val(CHECKBOXLIST);
            }
        });
    }
</script>
自我LV~