I want to send multiple forms in one form and send that form with post request to controller method. But collection comes null and it can not get. My form like this:
<form method="post" action="PageView/Create">
<form>
<input type="hidden" name="categoryID" value="1">
<input type="hidden" name="pageID" value="1">
</form>
<form>
<input type="hidden" name="categoryID" value="1">
<input type="hidden" name="pageID" value="11">
</form>
</form>
grid.js
const form = document.createElement('form');
form.method = 'post';
form.action = 'PageView/Create';
for (var i = 0; i < collection.length; i++) {
const form2 = document.createElement('form');
for (const key in collection[i]) {
if (collection[i].hasOwnProperty(key)) {
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = key;
hiddenField.value = collection[i][key];
form2.appendChild(hiddenField);
}
}
form.appendChild(form2);
}
document.body.appendChild(form);
form.submit();
PageView.cs
[HttpPost]
public ActionResult Create(List<PageCategoryPageViewModel> collection)
{
try
{
_pageCategoryPageService.DeletePageCategoryPage();
collection.ForEach(x=>_pageCategoryPageService.CreatePageCategoryPage(x));
return View("SuccessPage");
}
catch
{
return View("ErrorPage");
}
}