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也是路由参数吗?不,默认路由