我无法找到任何办法。我的代码示例就在这里。
首先查看
<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更改val1
和val2
,我需要在另一个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
的参数)
我真的很认真..请帮忙。 谢谢!
答案 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);
}
希望你得到更正