У меня есть view
, который визуализирует в Partial View
динамически, используя следующий кодНе удалось опубликовать список <T> в контроллер
Главная Просмотреть
@model JoyRydeStoreWebPortal.Areas.Admin.Models.StoreDetailModel
@{
ViewBag.Title = "StoreDetail";
Layout = "~/Areas/Admin/Views/Shared/_layoutAdmin.cshtml";
}
<div class="panel">
<div class="panel-heading">
<h3 class="panel-title">Store category</h3>
<div class="panel-actions">
<a href="#editCategory" id="createCategory" data-toggle="modal" class="btn btn-default"><i class="fa fa-plus" aria-hidden="true"></i></a>
</div>
</div>
<div class="panel-body">
<ul class="list-group list-group-dividered list-group-full">
@{foreach (var cat in Model.Categories){
if (cat.IsExist) {
<li class="list-group-item">@cat.CategoryName</li>
}
}
}
</ul>
</div>
</div>
// Render Partial View and open in bootstrap modal
$("#createCategory").on("click", function() {
$.ajax({
contentType: "application/json; charset=utf-8",
url: "../displayCategories/" + GetURLParameter(),
success: function (partialViewResult) {
$("#catModalBox").html(partialViewResult);
$("#editCategory").modal();
$('#editCategory .close-btn').on("click", function() {
$('#editCategory').hide('slow');
$('.modal-backdrop').hide('slow');
});
},
error: function (xhr, ajaxOptions, thrownError) {
debugger;
}
});
});
Контроллер
[HttpGet]
public ActionResult displayCategories(string info)
{
var StoreID = Convert.ToInt64(Request.RequestContext.RouteData.Values["id"]);
return PartialView("Partial_CreateCategory", getStoreCategories(StoreID));
}
[HttpPost]
public ActionResult SaveCategories(List<StoreCategoryDetail> lstCat)
{
// Getting lstCat Null here
return RedirectToAction("StoreDetails");
}
Частичный вид
@model List<JoyRydeStoreWebPortal.Areas.Admin.Models.StoreCategoryDetail>
<div class="modal fade" id="editCategory" aria-hidden="false" role="dialog" tabindex="-1" data-backdrop="static" data-keyboard="false">
<div class="modal-dialog">
<form class="modal-content" method="post" action="@Url.Action("SaveCategories","Index", new{ Area = "Admin" })">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title" id="createStoreTitle">Edit Category</h4>
</div>
<div class="modal-body">
<div class="">
@for (int i = 0; i < Model.Count; i++)
{
<div class="checkbox-custom checkbox-default">
@Html.CheckBoxFor(m => m.ElementAt(i).IsExist, new { @id = "chk" + i })
@Html.Label("chk" + i, Model.ElementAt(i).CategoryName)
</div>
}
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default close-btn">Close</button>
<button type="submit" class="btn btn-primary">Save changes</button>
</div>
</form>
</div>
На форме Разместить в Partial View
, я получаю Null
в List<StoreCategoryDetail>
. Зачем ?
Используйте '@ Html.CheckBoxFor (т => т. [Я] .IsExist)' (не 'ElementAt (я)') –
@OrelEraki не могли бы понять свой комментарий ... Пожалуйста, дайте мне знать в деталях , –
@StephenMuecke, который делает трюк .. может у, пожалуйста, дайте мне знать, что было не так в моем подходе –