0
2つのエンティティで1つのビューモデルを作成しました。このビューモデルをMVC Razorビューに渡しています。このビューには、それぞれエンティティごとに2つのHTMLドロップダウンがあります。MVCビューでカスケードドロップダウンajaxなしで?
<select class="form-control" id="Employees" name="Employees">
@foreach (var employee in Model.Employees)
{
<option value="@employee.Id"> @employee.name </option>
}
</select>
<select class="form-control" id="Tasks" name="Tasks">
@foreach (var task in Model.Tasks)
{
<option value="@task.Id"> @task.name </option>
}
</select>
従業員表は、タスク表の親です。私が望むのは、特定の従業員だけに関連するすべてのタスクを取得することです。例えば従業員のドロップダウンで私はJohnを選択し、次にTasksドロップダウンでJohnに関連するすべてのタスクを取得する必要があります。私はajaxでこれを行う方法を知っています。私は他の解決策を探しています。
@foreach (var task in Model.Tasks.Where(x=>x.employeeId == 'Selected in previous dropdown'))
{
<option value="@task.Id"> @task.name </option>
}
ビューのレンダリング方法を理解する必要があります。あなたが投稿した '@ foreach'ループは、サーバ側で一度だけ実行されます。他の唯一の方法は、すべてのデータをいくつかの隠した方法でページにレンダリングし、次にJSを介してドロップダウンを入力することです。これはもちろん、データがたくさんある場合は実行可能ではないかもしれません。 – JuanR