无法获取dotnet6 MVC应用程序中ViewData中的所有字段

问题描述 投票:0回答:1

我正在开发一个 .net6 mvc 应用程序。 jquery 版本 1.8.3.

在我的控制器中我有这一行:

 ViewData["CountryState"] = new SelectList(countryStates, "PK_StateID","StateName","FK_CountryID");

这应该填充州的所选类型下拉列表。我希望当国家/地区根据 PK_CountryID 更改时,视图能够重新过滤“国家/地区”下拉列表。我不想每次更改国家/地区时都打电话给数据库。

我的下拉菜单设置如下:

                <li class="columns three">
                <h3>@* @Resources.Common.Profile.Profile.Common_Profile_Country *@State</h3>
                @Html.DropDownListFor(model => model.ResidentialStateId, (IEnumerable<SelectListItem>)ViewData["CountryState"], "", new { @id = "drpEditIndContactResidencialCountryState", @class = "chzn-select width-175" })
            </li>

但是,当我使用 F12 查看渲染的 HTML 时,我发现只包含前两个字段。例如:

                   <h3>State</h3>
                    <select class="chzn-select width-175" data-val="true" data-val-required="The ResidentialStateId field is required." id="drpEditIndContactResidencialCountryState" name="ResidentialStateId"><option value=""></option>
<option value="1">Badakhshan</option>
<option value="2">Badghis</option>
<option value="3">Baghlan</option>
<option value="4">Balkh</option>
<option value="5">Bamyan</option>
<option value="6">Daykundi</option>
<option value="7">Farah</option>
<option value="8">Faryab</option>
<option value="9">Ghazni</option>
<option value="10">Gh&#xC5;&#x8D;r</option>
<option value="11">Helmand</option>
<option value="12">Herat</option>
<option value="13">Jowzjan</option>
<option value="14">Kabul</option>

希望您能提供如何获取 CountryID 的建议,以便当我更改国家/地区时,我的过滤器状态可以根据所选国家/地区过滤状态。

谢谢你

javascript asp.net-mvc asp.net-core
1个回答
0
投票

我希望视图能够在以下情况下重新过滤“状态”下拉列表: 国家/地区根据 PK_CountryID 进行更改。我宁愿不打电话 每次国家/地区更改时都会发送到数据库。

SelectList(IEnumerable, 字符串, 字符串, 字符串, 对象) 使用列表的指定项、数据值字段、数据文本字段、数据组字段和所选值初始化 SelectList 类的新实例。

SelectList.SelectedValue 获取用户从服务器选择的列表值,不用于选择国家下拉列表时填写的“FK_CountryID”。

如果您不想每次更改国家/地区时都调用数据库,则需要将countryStates放在某处,以便您可以在国家/地区更改时重新过滤States下拉列表。

© www.soinside.com 2019 - 2024. All rights reserved.