2016-04-01 21 views
0

Ich versuche, Select2 In Rasierer in ASP.NET MVC zu verwenden. Aber ich kann keine Arbeit bekommen.Verwenden Sie Jquery Select2 mit ASP.NET MVC

$(document).ready(function() { 
      $(".genreOptions").select2({ 
       tags: true, 
       ajax: { 
        url: 'http://localhost:65148/NewProfile/Genres', 
        dataType: 'json', 
        delay: 250, 
        data: function (params) { 
         return { 
          q: params.term, // search term 
          page: params.page 
         }; 
        }, 
        processResults: function (data, page) { 
         var newData = []; 
         $.each(data, function (index, item) { 
          newData.push({ 
           id: item.Id, //id part present in data 
           text: item.Genre //string to be displayed 
          }); 
         }); 
         return { results: newData }; 
        }, 
        cache: true 
       }, 
       escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
       minimumInputLength: 1 
      }); 

@Html.DropDownListFor(x => x.BandProfile.Genres, Enumerable.Empty<SelectListItem>(), new { @class="genreOptions", multiple = "multiple", style ="width: 100%;"}) 

Die Suche nach Tags funktioniert gut. Aber wenn ich das Formular poste, ist die Anzahl der Eingabefelder 0. Wie kann ich die Daten aus dem Eingabeformular erfassen?

Antwort

1

@Bryan Ich baue ein Javascript-Array und gebe es mit Ajax an den Server. Scheint gut für meine Zwecke zu funktionieren. Vielleicht könntest du das versuchen. Die Wähler ich unten gesetzt wird anders sein als das, was Sie brauchen, aber hier ist die allgemeine Idee ...

Bei dem Klicken

$('#submitButton').click(function() { 

     fillHiddenInput(); 

     var dataToSend = $('#hiddenInput').val(); 

     //Submit the form with ajax or however you want to get dataToSend to server 
}); 

FillHiddenInput Funktion ...

var fillHiddenInput = function() { 

     $('#hiddenInput').val(""); 
     var stuff = []; 

     $('.ms-selection .ms-list li ul').children('li').each(function(){ 

      if ($(this).hasClass('ms-selected')) 
      { 
       stuff.push($(this).children('span').text()); 
      } 

     }); 

    $('#hiddenInput').val(stuff); 
} 
+0

Ich will nicht das zu tun. Ich möchte hier Rasierer benutzen. – Bryan