У меня есть статический список выбора, как показано нижеПрисвоить SelectList динамически создается выпадающий список в MVC
var listItems = new SelectListItem[] {
new SelectListItem(){Text="-- Please Select --",Value=""},
new SelectListItem(){Text="Death",Value="Death"},
new SelectListItem(){Text="Resignation",Value="Resignation"},
new SelectListItem(){Text="Retirement",Value="Retirement"},
new SelectListItem(){Text="Termination",Value="Termination"},
new SelectListItem(){Text="Transfer",Value="Transfer"},
};
ViewBag.DeletionReason = listItems;
и назначая то же самое ViewBag.
Теперь на моей странице мне нужно найти идентификатор персонала.
например: 1234
затем в следующем зрения все штабы, сотрудники которого идентификатор начинается с 1234 будет в списке. При перечислении же по отношению к каждой детали персонала мне нужно перечислить указанный выше список выбора для выбора причины удаления.
Я сделал это, как показано ниже
Контроллер
public ActionResult DeleteRequest(string[] memberIDs,string[]
deletion_reason, string[] effective_date)
{
foreach (string item in memberIDs)
{
np_user_requests_dtls userRequest = new np_user_requests_dtls();
staffid = memberIDs[i];
effectiveDateValue = effective_date[i];
userRequest.staffid_id = staffid;
userRequest.deletion_reason = deletion_reason[i];
userRequest.effective_date = Convert.ToDateTime(effectiveDateValue);
try
{
db.SaveChanges();
}
catch (exception ex)
{
}
}
i++;
}
}
Посмотреть
<table >
<thead>
<tr>
<th>
Staff ID
<th>
New Effective End Date
</th>
<th>
Deletion Reason
</th>
<th>
<input type="checkbox" name="checkAll" id="checkAll" value="1" style="width: 25px" />
<a href="javascript:void(0);" id="selectAllInResult"> Or Select all in result</a>
<span id="span_effective_for_all" style="display:none">
<input type="text" name="effective_date_all" id="effective_date_all" value="" placeholder="Effective End Date All" class="datepicker" style="width: 150px" > <input type="button" name="cancelAll" id="cancelAll" value="Cancel" style="width: 60px" />
</span>
<span id="span_deletion_reason_all" style="display:none">
<select name="deletion_reason_all" id="deletion_reason_all" style="width: 150px"> </select><input type="button" name="cancelAll" id="cancelAll" value="Cancel" style="width: 60px" />
</span>
</th>
</tr>
</thead>
<tbody>
@if (Model != null && Model.Count() > 0)
{
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.staff_id)
</td>
<td>
<input type="text" name="effective_date[]" id="@("efddate_"[email protected]_id)" value="" placeholder="Effective End Date" class="datepicker"></td>
<td>
@Html.DropDownList("deletion_reason[]",(SelectList)@ViewBag.DeletionReason)
</td>
<td>
<input type="checkbox" name="memberIds[]" id="@item.staff_id" value="@item.staff_id_id" />
</td>
</tr>
}
</tbody>
</table>
Модель
public string staff_id { get; set; }
public date effective_date { get; set; }
public string deletion_reason { get; set; }
В случае, если имя_идентификации также совпадает с типом текста, например, effective_date, я могу опубликовать данные. Но мне нужно, чтобы он был выпадающим. Я stucked там
Это дает мне время выполнения ошибки
There is no ViewData item of type 'IEnumerable<SelectListItem>'
that has the key 'deletion_reason[]'.
Также, пожалуйста, дать представление о том, как я могу получить значение, соответствующее каждому персоналу при размещении.
'DropDownListFor()' принимает выражение как первый аргумент (а не 'string'). Затем вы не можете назвать свойство, которое вы связываете с тем же свойством, что и свойство модели. Его немного сложно понять, что вы пытаетесь сделать здесь. Каков метод, на который вы будете отправлять сообщения? –
@stephenmuecke Я немного запутался здесь..и отредактировал мой вопрос с другими динамическими данными..что это текст .. в том, что они выберет дату .. контроллер сможет получить эти динамические даты с именем массива .. но здесь мне нужно показать выпадающее меню, которое там было. Я изменил на 'DropDownList()' – Sachu
Если вы хотите передать строку, используйте '@ Html.DropDownList (" deletion_reason [] ", ...)' - (не '@ Html.DropDownListFor()', но его сложный чтобы увидеть, как вы отправляете назад что-либо значимое с этим. –