C# Razor-隐藏字段值在提交后保持不变
我试图得到一些表单,每个表单都有一个隐藏的字段和下拉列表C# Razor-隐藏字段值在提交后保持不变,c#,razor,C#,Razor,我试图得到一些表单,每个表单都有一个隐藏的字段和下拉列表 <table class="table"> @foreach (var sport in Model.Sports) { @using (Html.BeginForm("Index")) { <tr> <td> @Html.Label(sport.Name, sport.Name)
<table class="table">
@foreach (var sport in Model.Sports)
{
@using (Html.BeginForm("Index"))
{
<tr>
<td>
@Html.Label(sport.Name, sport.Name)
@Html.Hidden("sportId", sport.Id)
</td>
<td>
@Html.DropDownList("masterSelect", new SelectList((IEnumerable<ThingModel>)Model.Things, "Id", "Name", Model.GetThing(sport.Id).Id), new { @class = "dropleft", onchange = "this.form.submit();" })
</td>
</tr>
}
}
</table>
@foreach(Model.Sports中的var sport)
{
@使用(Html.BeginForm(“索引”))
{
@标签(sport.Name,sport.Name)
@Html.Hidden(“sportId”,sport.Id)
@Html.DropDownList(“masterSelect”,new SelectList((IEnumerable)Model.Things,“Id”,“Name”,Model.GetThing(sport.Id).Id),new{@class=“dropleft”,onchange=“this.form.submit();”)
}
}
第一次加载页面并在下拉列表中更改值时,表单将正确的值发布到控制器。重新加载页面时,
sport.Name
字段都不同(如预期),但隐藏字段都具有相同的值,即从下拉列表中选择的值。即使在调试cshtml时,我也可以看到sport.Id
具有正确的值,但不是呈现的值。Id也是路由参数吗?不,默认路由