siva455 Ответов: 2

Передача данных между различными представлениями в MVC


Всем Привет,
Предположим, что у меня есть выпадающий список на странице просмотра и если я выберу какое-либо значение в раскрывающемся списке, то выбранное значение должно быть передано в другое представление.

пожалуйста, дайте мне знать, как это возможно.

заранее спасибо.

2 Ответов

Рейтинг:
2

diego4322

Приведенный ниже код должен быть пустым, потому что он ничего не возвращает.
Я надеюсь, что это кому-то поможет.

[HttpPost]
public ActionResult UpdateSession(string selectedValue)
{
   Session["SelectedValue"] = selectedValue;
}


CHill60

Ничего не добавляет к решению 1 опубликованному более 4 лет назад

Рейтинг:
1

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)


aarif moh shaikh

хороший вариант... согласен с вами :)

Member 12070444

Спасибо, у меня есть аналогичная проблема, однако моя заключается в том, чтобы жестко ввести текстовое поле в другое представление.