Вы должны использовать JavaScript для изменения выбора списка дескриптора.
И, читая об Ajax, нужно получить данные из БД без перезагрузки страницы.
Добавить
Пример, как вы можете обрабатывать изменения выбора списка.
@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
function actch() {
alert(document.getElementById("namid").value);
}
</script>
Значение "document.getElementById (" namid "). Value" содержит выбранную вами опцию.
Вы должны отправить это значение на сервер и получить запрос
@Html.ListBox("nam",new SelectList(new string[]{"opt1","opt2"}),new {onchange = "javaScript:actch()", id = "namid"})
<script type="text/javascript">
function actch() {
$.ajax({
url: "your url",
type: "POST",
data: "id = " + document.getElementById("namid").value,
success: function (data) {
// action on success
document.getElementById("TextBoxId").value = data;
},
error: function (jqXhr, textStatus, errorThrown) {
// action on fail
},
complete: function () {
}
});
}
</script>
Вы должны написать часть запроса к серверу и настроить ajax.(Я использовал jQuery)
Добавлено: Часть запроса к серверу (пример)
[HttpPost]
public MvcHtmlString Detail(string id)
{
var d = _db.GetVehicle(Convert.ToInt32(id));
var sb = new StringBuilder();
sb.AppendLine(string.Format("Type: {0}</br>", d.Type));
sb.AppendLine(string.Format("Brand: {0}</br>", d.Brand));
sb.AppendLine(string.Format("Model: {0}</br>", d.Model));
sb.AppendLine(string.Format("Number: {0}</br>", d.Number));
sb.AppendLine(string.Format("Year: {0}</br>", d.Year));
sb.AppendLine(string.Format("Cost: {0}</br>", d.Cost));
return new MvcHtmlString(sb.ToString());
}
URL выглядит так: MyController / Detail /
DATAдля ajax: "id =" + document.getElementById ("namid"). value
PS Некоторые редактируют / портят мой ответ, и он не помечен (