2 回答
TA贡献1827条经验 获得超8个赞
您的代码中有几个错误:
首先,你的代码
<form id="myform" action="xx" controller="xxx" method="post">
将被渲染成
<form id="myform" action="xx" method="post">
请注意action属性xx不是xxx/xx。我想您应该使用asp-action和asp-controller来修复您的代码,例如:
<form id="myform" asp-action="MyTestActionName" asp-controller="MyTestControlerName" method="post">
其次,有两种具有相同idof 的形式,myform最好为 id 分配不同的名称或id使用删除属性$(this).closest("form").submit():
@section Scripts {
<script type="text/javascript">
$('input[type=radio]').on('click', function () {
console.log("trigger works");
$(this).closest("form").submit();
});
</script>
}
最后,当您input使用asp-for以下代码编写TagHelper 时:
<input type="hidden" asp-for="@Model[item].a" />
<input type="hidden" asp-for="@Model[item].b" />
...
它会被渲染成类似的东西:
<input type="hidden" id="z1__a" name="[1].a" value="a1">
<input type="hidden" id="z1__a" name="[1].b" value="b1">
...
请注意,名称以 为前缀[1].。这会使绑定变得困难。因为您想将单个项目提交到服务器,就个人而言,我建议您应该将其替换@Model[item].为@item.:
@for( var i = 0; i < Model.Count(); i++ )
{
var item = Model[i];
<div style="border: 1px solid ;">
<form id="myform" asp-action="Test" asp-controller="Home" method="post">
<input type="hidden" asp-for=" @item.a " />
<input type="hidden" asp-for=" @item.b " />
<input type="hidden" asp-for=" @item.c " />
<input type="hidden" asp-for=" @item.d " />
...
添加回答
举报
