使用ASP.NET Core通过POST方法接收值列表

时间:2017-09-21 02:00:55

标签: jquery asp.net post asp.net-core

我无法找到任何办法。我的代码示例就在这里。

首先查看

<form id="listForm" action="Index" method="post">
<ul>
@foreach (loop condition) {
    <li>
        <input type="hidden" name="val1" value="@item.val1" /> 
        <input type="hidden" name="val2" value="@item.val2" />
        ...other items...
    </li>
}
</ul>
</form>
<a id="button"></a>

<script>
    $(document).ready(function() {
        $("#button").click(function(e){
            $("#listForm").submit();
        });
    });
</script>

控制器

[HttpPost]
public IActionResult Index([FromForm]ValueModel value)
{
    return Content(value.val1);
}

(此处我只接收第一个数据集,例如val1: "1", val2: "str1"

模型

public class ValueModel
{
    public string val1 { get; set; }
    public string val2 { get; set; }
}

(为什么我制作这样的流程是我在View中使用JavaScript更改val1val2,我需要在另一个View页面中使用此数据。)

重点是

我有数据列表 (例如,请求正文就像

val1: "1"
val1: "2"
val2: "str1"
val2: "str2"

val1: "1", val2: "str2"是第一个数据集,val1: "2", val2: "str2"是第二个数据集 )

我需要在Controller中收到此信息(我只能接收val1: "1" and val2: "str1",因为我创建了控制器[FromForm]ValueModel value的参数)

我真的很认真..请帮忙。 谢谢!

1 个答案:

答案 0 :(得分:0)

@using (Html.BeginForm("Index", "Home", FormMethod.Post))
{

<ul>
@foreach (loop condition) {
  <li>
      <input type="hidden" name="val1" value="@item.val1" /> 
      <input type="hidden" name="val2" value="@item.val2" />
      ...other items...
 </li>
}
</ul>

@Html.ActionLink("Submit", "", null, new { @id = "submit" })

}

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
   <script type="text/javascript">
       $(function () {
        $("#submit").click(function () {
         document.forms[0].submit();
         return false;
      });
   });
</script>

在这里检查完整代码,我已经使用了动作链接,你也可以使用按钮

[HttpPost]
public ActionResult Index(ValueModel person)
{
return Content(value.val1);
}

希望你得到更正