Я использую список списка подкачки и получил выбранный элемент в массив, но не могу отправить его на контроллер с помощью метода jQuery ajax?
Передать данные списка списка подкачки вконтроллер
Этот фрагмент кода используется для переноса элементов с левой стороны списка в правую сторону.
<script>
$(document).ready(function () {
$('#btnRight').click(function (e) {
var selectedOpts = $('#lstBox1 option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#lstBox2').append($(selectedOpts).clone());
$(selectedOpts).remove();
e.preventDefault();
});
Этот фрагмент кода используется для переноса элементов с правой стороныполе списка слева.
$('#btnLeft').click(function (e) {
var selectedOpts = $('#lstBox2 option:selected');
if (selectedOpts.length == 0) {
alert("Nothing to move.");
e.preventDefault();
}
$('#lstBox1').append($(selectedOpts).clone());
$(selectedOpts).remove();
e.preventDefault();
});
$("#sub2").on("click", function (event) {
$('#lstBox2 option').prop('selected', true);
var things = $('#lstBox2').val();
console.log(things);
things = JSON.stringify({ 'things': things });
Полученные значения для полей списка передаются в контроллер
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: '/Home/SaveData',
data: things,
success: function () {
$('#result').html('"PassThings()" successfully called.');
},
failure: function (response) {
$('#result').html(response);
}
});
});
});
</script>
</head>
<body>
<div class="approveTermsContainer">
<div class="newItems">
<b>New Items:</b><br />
<select multiple="multiple" id='lstBox1'>
@{
List<SwapList.Models.pageList> list = (List<SwapList.Models.pageList>)Session["List1"];
}
@{
foreach (var item in list)
{
<option value="{pageName:@item.pageName, mainPage:@item.mainPage}">@item.pageName </option>
}
}
</select>
</div>
<div class="transferBtns">
<center><input type='button' id='btnRight' value='>' class="button button2" /></center>
<center><input type='button' id='btnLeft' value='<' class="button button2" /></center>
<center>
<div class="submitContainer">
<input type="submit" class="button button1" id="sub2" />
</div>
</center>
</div>
<div class="approvedItems">
<b>Items to Approve: </b><br />
<select multiple="multiple" id='lstBox2'></select>
</div>
</div>
</body>
</html>
Это массив print в console.log
["{pageName:Not Planned Machines, mainPage:Dashboard}", "{pageName:Breakdown Machines, mainPage:Dashboard}"]
Контроллер
public void SaveData(List<pageList> pagenames)
{
var t = pagenames;
}
модель класса
public class pageList
{
public int pageId { get; set; }
public string pageName { get; set; }
public string mainPage { get; set; }
}