musefan
Должен ли пользователь "отправить" страницу, чтобы она представляла собой Сохраняемое значение, или пользователь просто должен выбрать опцию, а затем перейти на другую страницу?
В любом случае, вы можете просто использовать хранилище сеансов. Вы можете установить это на странице submit (POST) или использовать некоторый javascript Ajax для отправки значения на событие изменения выпадающего списка.
1. Пост Кстати
(в контроллере)
[HttpPost]
public ActionResult MyPage(PageData pageData)
{
Session["SelectedValue"] = pageData.MyDropDownValue;
}
2. способ AJAX (с использованием JQuery)
(в контроллере)
[HttpPost]
public ActionResult UpdateSession(string selectedValue)
{
Session["SelectedValue"] = selectedValue;
}
(в вашем javascript)
$(function () {
$("#MyDropDown").change(onChange);
};
function onChange(){
$.ajax({
url: 'MyController/UpdateSession',
type: 'POST',
dataType: 'json',
data: {selectedValue: $("#MyDropDown").val()},
contentType: 'application/json; charset=utf-8',
success: function(data){ },
error: function(err) { alert(err); }
});
}
затем на странице, которую вы хотите загрузить, вы можете получить доступ к сеансу...
<%= Session["SelectedValue"] %>
Или с помощью движка Razor View Engine в MVC 3 вы можете использовать вместо него ViewBag...
(контроллер)
ViewBag.SelectedValue = "My Value";
(страница cshtml)
@(ViewBag.SelectedValue)
Member 12070444
Спасибо, у меня есть аналогичная проблема, однако моя заключается в том, чтобы жестко ввести текстовое поле в другое представление.