Мне нужно вернуть коллекцию отмеченных флажков при отправке формы.
Проблема в том, что флажки не являются частью модели, они генерируются jquery после того, как пользователь выполнит какое-либо действие. флажки поставляются правильно на странице.
Как я могу получить проверенное свойство внутри моей модели на пост-событии.
@model Models.MainModule
@using (Html.BeginForm("Detail", "SomeControllerName", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.HiddenFor(m => Model.SubCheckList)
<div id="CheckList"></div>
}
JQuery для флажка:
$(document).ready(function () {
$("#ModID").change(function () {
var ModId = $('#ModID').val();
$.ajax({
type: "GET",
url: "/SomeController/SomeAction",
data: { Mid: ModID },
datatype: "json",
traditional: true,
success: function (data) {
$('#CheckList').empty();
$.each(data, function (key, value) {
var li = $('<li><input type="checkbox" name="' + key + '" id="' + value.subID + '"/>' +
'<label for="' + key + '"></label></li>');
li.find('label').text(value.subName);
$('#CheckList').append(li);
});
}
});
});
});
Модельный класс
namespace Models
{
public class MainModule
{
public int MainID { get; set; }
public string MainName { get; set; }
public List<MyModule> SubCheckList { get; set; }
}
public MainModule()
{
this.SubCheckList = new List<MyModule>();
}
public class MyModule
{
public int id { get; set; }
public string name { get; set; }
}
}
Код контроллера:
[HttpPost]
public ActionResult Detail(MyModule myModuleObj)
{
GetViewBagData();
return View();
}