我试着从选择2列表绑定值上后剃刀MVC模式

问题描述 投票:0回答:1

我目前有在剃刀页,.NET的核心模型的编辑视图。下面的代码在选择我通过在为选择2下拉列表中的PARTID价值而言。我的问题是,当我试图在窗体上再次发布不接触的部分元素,验证抱怨它没有设置。我见过传递给控制器​​这是不正确的行为时,将其设置为0。

HTML的形式对部分

<div class="form-group">
    <label class="form-label">Part</label>
    <select name="PartId" id="selectpicker1" class="form-control" data-style="btn-default">
       <option></option>
    </select>
<span asp-validation-for="PartId" class="text-danger"></span>
</div>

JS

$('#selectpicker1').select2({
     placeholder: 'Select a part',
     data: JSON.parse('@Html.Raw(Json.Serialize(Model.PartsList))'),

     initSelection: function (element, callback) {
     var data= { id: @Model.PartId.ToString(), text: '@Model.PartsList.Where(x=> x.Id == Model.PartId.ToString() ).First().Text'};
     callback(data);
     }
});

如果我重新选择相同的项目,它正确地结合并发送到动作控制器上。我还没有提供的动作或形式作为此功能工作正常休息。

asp.net-mvc razor .net-core jquery-select2
1个回答
0
投票

我解决了这个问题通过删除:

 initSelection: function (element, callback) {
     var data= { id: @Model.PartId.ToString(), text: '@Model.PartsList.Where(x=> x.Id == Model.PartId.ToString() ).First().Text'};
     callback(data);
 }

并用下面的(目前选择的选项99,但我可以从模型中PARTID替换此。

 $('#selectpicker1').val('99');
 $('#selectpicker1').trigger('change');
© www.soinside.com 2019 - 2024. All rights reserved.