2017-06-18 22 views
1

私はaspnetコアWebサイトにBootstrap Dual Listboxを組み込みましたが、右のリストボックスで選択した値を取得する方法はわかりません)。aspnetコアのデュアルリストボックスから選択した値を取得する方法C#

私のWebサイトには、言語を変更するたびに異なるクエストがロードされる言語ドロップボックスとデュアルリストボックスがあります。再びデュアルリストボックス

$(document).ready(function() { 
    $('[name=duallistbox_quest]').bootstrapDualListbox({ 
     selectorMinimalHeight: 200 
    }); 

    $("#idLanguage").on("change", function() { 
     $.ajax({ 
      url: "/Quest/GetAllQuests", 
      type: "GET", 
      dataType: "JSON", 
      data: { Id: $("#idLanguage").val() }, //id of the language 
      traditional: true, 
      success: function (result) { 
       $('[name=duallistbox_quest]').empty(); 
       $.each(result, function (i, item) { 
        $('[name=duallistbox_quest]').append($('<option value="' + item["value"] + '"> ' + item["text"] + ' </option>')); 
       }); 
       $('[name=duallistbox_quest]').bootstrapDualListbox('refresh', true); 
      }, 
      error: function() { 
       alert("Error oops."); 
      } 
     }); 
    }); 
}); 

マイポスト

を埋めるために、私のapicontrollerを呼び出す

マイViewModel.cs

public class QuestViewModel 
{ 
    public IEnumerable<string> QuestIds { get; set; } 
    public string Language { get; set; } 
    public List<SelectListItem> Quests { set; get; } 
} 

マイCSHTML

<form asp-action="add" role="form"> 
    <div class="form-group"> 
     <label>Language</label> 
     <select asp-for="Language" class="form-control m-b" id="idLanguage"> 
      <option value="PT">PT</option> 
      <option value="FR">FR</option> 
      <option value="UK">UK</option> 
      <option value="ES">ES</option> 
     </select> 
    </div> 


    <div class="form-group"> 
     <select asp-for="QuestIds" asp-items="@Model.Quests" class="form-control dual_select" multiple="multiple" name="duallistbox_quest"> 
     </select> 
    </div> 
</form> 

Ajaxでの私のjavascriptの、

[HttpPost] 
[ValidateAntiForgeryToken] 
public async Task<IActionResult> add(QuestViewModel model) 
{ 
    return View();//just to test 
} 

私の投稿では、viewmodelにはmodel.QuestIdsが常にnullがあります。

ここには何が欠けていますか?

ありがとうございます。

よろしくお願いいたします。

Jolynice。

答えて

0

私はこのように、のviewmodelプロパティでデュアルリストボックスの名前を変更する必要が

、解決策を見つけました。

<div class="form-group"> 
    <select asp-for="QuestIds" asp-items="@Model.Quests" class="form-control dual_select" multiple="multiple" name="QuestIds"> 
    </select> 
</div> 

次に、javascriptスクリプトを更新するのを忘れないでください。

関連する問題