Html.DropDownListForで選択した値を表示するのに問題があります。複数のドロップダウンを使用するビューがあり、それらすべてにデータが入力されますが、何も選択されません。すべてのドロップダウンに対して同じ選択の選択肢がありますが、選択された値は異なります。これが私のビューモデルです:
public class ViewPersonTargetingViewModel
{
public List<PersonTarget> Targets { get; set; }
public SelectList TargetStatuses { get; set; }
}
これが私がSelectListを作成する方法です:
var statuses = DataAccess.GetPersonTargetStatuses();
TargetStatuses = new SelectList(statuses, "PersonTargetStatusUuid", "PersonTargetStatusName");
私のPersonTargetクラス:
public class PersonTarget
{
public string PersonTargetStatusName { get; set; }
public Guid PersonTargetStatusUuid { get; set; }
//and more
}
そして、これが私がDropDownListを作成する方法です:
<%: Html.DropDownListFor(model => model.Targets[k].PersonTargetStatusUuid, Model.TargetStatuses)%>
ここで、kはターゲットリストの反復です。
同じSelectListを使用して、すべてのDropDownにデータを入力します。これには、次のような情報が含まれています。
- テキスト:A値:b2e4a939-06d8-4052-8abf-5c1b2a5e8591
- テキスト:B値:0b59faaa-514d-4212-93cd-6b0a50b8f151
- テキスト:C値:5575f3cf-33f8-41df-be73-a176a3db5ed5
たとえば、「B」を表示しようとすると、正しいターゲットステータスが表示されますが、最初の要素(「A」)が選択されたまま表示され、指定した値も出力されます。値は0b59faaa Model.Targets[k].PersonTargetStatusUuid
-514d-4212-93cd-6b0a50b8f151( "B"のGUID)ですが、それでも"A"が表示されます。私はこれを修正する方法のアイデアを使い果たしました。どんな助けでも大歓迎です、ありがとう:)。