私の ASP.NET MVC 4 プロジェクトには、次のようなビューがあります。
<td>
@Html.DropDownList("SelectedValue", ViewBag.SoftwaresList as SelectList, "Add New Software")
</td>
<td>
No Description
</td>
<td>
@Html.ActionLink("Add", "AddSoftware", new { pDeviceId = Model.Id, pSoftwareId = Model.SelectedValue})
</td>
私のモデルにはオブジェクト プロパティ「SelectedValue」があります。私がやろうとしているのは、ユーザーがリンクの追加をクリックすると、デバイス ID (これはモデルからビューに直接渡されるため、正常に動作します) とドロップダウンリストから選択された ID を渡すことです。DropDownList は別のモデルのコレクションですが、ID も含まれています。
私は運がないので、次のことを試しました:
@Html.ActionLink("Add", "AddSoftware", new { pDeviceId = Model.Id, pSoftwareId =
((ViewBag.SoftwaresList as SelectList).SelectedValue as SoftwareModel).Id})
注目に値する: DropDownList には SoftwareModel が正しく取り込まれていますが、選択した値からコントローラーのアクションに追加の値を渡すことができません。
実際、Chrome のホバー オーバーで表示されるのは次のとおりです。
someURL\AController\AddSoftware?pDeviceId=2
私はそれが次のようなものになると予想します:
someURL\AController\AddSoftware?pDeviceId=2&pSoftwareId=5