【发布时间】:2017-12-19 14:14:59
【问题描述】:
我有一个生成其他部分视图列表的部分视图,当我提交给控制器时,我只从最后添加的项目中获取我想要的数据。我明明做了什么傻事,却看不出是什么。
@for (int i = 0; i < Model.Listofthings.Count(); i++)
{
<ul>
<li>
@{Html.RenderPartial("Thing", Model.Listofthings[i]);}
</li>
</ul>
}
在 Thing partial 我们有:
@model FancyObject
<script>
$(function () {
$('a#selectUser').click(function () {
$('form#selectUserForm').submit();
});
});
< link rel="stylesheet" href="~/Content/Site.css" />
< form id="selectUserForm" method="post" action="@Url.Action("SelectUser", "Home")">
@Html.HiddenFor(x => x.SomethingImportant)
<a href="#" id="selectUser" class="HyperLink1">
<i class="fa fa-female"></i>
<span class="nav-text">
@Model.AProperty
</span>
</a>
现在当我提交表单时,我只从上面创建的最后一个项目中获得“SomethingImportant”。我做错了什么?
【问题讨论】:
-
我将
- 和
-
您的代码存在多个问题。第一个脚本永远不应该是部分的。接下来,您生成重复的
id属性,这是无效的 html,意味着您的脚本永远无法正常工作。不管你的要求是什么,你只会提交第一个表格,而不是最后一个。很难理解您在这里尝试做什么(以及为什么),尤其是当您不显示控制器方法时。 -
问题是重复的 id 标签。我想要做的是有一个可以单击的对象列表,然后获取有关这些对象的信息,这些信息显示在不同的页面上。局部视图是一个侧边栏菜单,单击名称后,您会看到有关您单击的任何内容的信息。脚本从不在局部视图中,它们要么在共享布局中,要么在呈现局部视图的主页中,只是脚本可见:)
标签: asp.net-mvc view controller