如何在一个Post请求中发送嵌套表单?

我想以一种形式发送多种形式,并将带有请求后的形式发送给控制器方法。但是集合为空并且无法获取。我的表单是这样的:

<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");
    }
}
epkaixuan 回答:如何在一个Post请求中发送嵌套表单?

您将需要具有如下所示的表单结构

<dependency>
            <groupId>com.ibm.db2.jcc</groupId>
            <artifactId>db2jcc</artifactId>
            <version>10.1</version>
        </dependency>

您还应该使用不同的表单字段名称,因为如果在每种表单中都使用相同的表单方法将表单提交给特定的控制器方法,那么这些字段名称将相互冲突。

<form method="post" action="PageView/Create">
        <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>

您可以使用任何javascript实用程序发送Ajax请求。

本文链接:https://www.f2er.com/3104176.html

大家都在问