Я хочу, чтобы пользователь мог выбрать правило из выпадающего списка, и в зависимости от того, какое правило было выбрано, я бы хотел, чтобы на странице была метка для отображения имени правила (без публикации)
Вам понадобится JavaScript здесь. JQuery идеально подходит для работы. Я хотел бы начать с предоставления детерминированного идентификатора для раскрывающегося списка, потому что если вы запустите это представление внутри шаблона, к идентификатору могут быть добавлены префиксы, которые разрушат наши селекторы идентификаторов JavaScript (см. Ниже):
@Html.DropDownListFor(
x => x.D1K2N3CARules,
new SelectList(Model.D1K2N3CARules, "ID", "Rule"),
new { id = "ruleDdl" }
)
затем укажите контейнер, который получит выбранное значение:
<div id="ruleValue" />
и, наконец, в отдельном файле javascript подпишитесь на событие изменения выпадающего списка и обновите контейнер с выбранным значением / текстом:
$(function() {
// subscribe for the change event of the dropdown
$('#ruleDdl').change(function() {
// get the selected text from the dropdown
var selectedText = $(this).find('option:selected').text();
// if you wanted the selected value you could:
// var selectedValue = $(this).val();
// show the value inside the container
$('#ruleValue').html(selectedText);
});
});
Мне также нужно иметь возможность отправить выбранное правило на следующую страницу.
Вы можете поместить свой выпадающий список в форму
@using (Html.BeginForm("NextPage", "Foo"))
{
@Html.DropDownListFor(
x => x.D1K2N3CARules,
new SelectList(Model.D1K2N3CARules, "ID","Rule")
)
<input type="submit" value="Go to the next page" />
}
и действие контроллера NextPage получит выбранное значение.