Javascript 如何使用href提交表单并向控制器发送隐藏值

Javascript 如何使用href提交表单并向控制器发送隐藏值,javascript,c#,razor,Javascript,C#,Razor,我有一个在我的视图中显示作业的列表,当我单击该链接时,它会将我带到不同的页面以显示完整的详细信息,并且在浏览器url中应该显示如下所示 //mysite.com/jobs/auto-damage-regulator-trainee-houston-and-around-cities 为了实现这一点,我试图在单击时提交表单,并将隐藏值传递给控制器。但它总是传递列表中的第一项 @model List<JobPortal.Models.MyDB> @{ ViewBag.Title =

我有一个在我的视图中显示作业的列表,当我单击该链接时,它会将我带到不同的页面以显示完整的详细信息,并且在浏览器url中应该显示如下所示

//mysite.com/jobs/auto-damage-regulator-trainee-houston-and-around-cities

为了实现这一点,我试图在单击时提交表单,并将隐藏值传递给控制器。但它总是传递列表中的第一项

@model List<JobPortal.Models.MyDB>
@{
   ViewBag.Title = "Current List";
}

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@foreach (var list in Model)
{
    <div class="row">
        <div class="flexcontainer">
            @Html.Partial("_MySharedView", list)
        </div>
    </div>
}
}

如何提交表单onclick href并将隐藏值传递给控制器?

id属性的值应该只分配给一个html元素。表单的onclick处理程序将只找到第一个id,因为它们被设计为唯一的。相反,您应该在示例中的表单元素的id上附加一些唯一的内容,以便它们都是唯一的。例如:

<form id="Jobs-@item.id" action="~/Jobs?id=@item.id" method="post">
    <input type="hidden" name="id" id="id" value=@item.id />
    <strong><a href="~/Jobs?@item.title" onclick="document.getElementById('Jobs-@item.id').submit();">@item.title</a></strong>
</form>



编辑:您肯定应该在每个项目上使用标识符来区分每个表单块和每个输入。

必须使用POST方法而不是GET?
public ActionResult Jobs(int? id)
{
    var allDetails = _db.MyDB.Where(p => p.id == id).FirstOrDefault();
    return View(allDetails);
}
<form id="Jobs-@item.id" action="~/Jobs?id=@item.id" method="post">
    <input type="hidden" name="id" id="id" value=@item.id />
    <strong><a href="~/Jobs?@item.title" onclick="document.getElementById('Jobs-@item.id').submit();">@item.title</a></strong>
</form>