Member 12637044 Ответов: 1

Session MVC C# используйте session для извлечения данных


Я создал этот простой трехстраничный проект, но у меня просто есть простой вопрос о том, как передать мои данные и как вернуть их в поле зрения. Я знаю, что могу использовать viewbag только один раз, так что как еще я могу это сделать? Поэтому мой вопрос заключается в том, когда я ввожу какой-то тип данных в свое текстовое поле, которое находится на моей странице index.cshtml. Как я могу сохранить это значение и вернуть его на свою страницу welcome.cstml с помощью сеанса? СПАСИБО
<pre lang="c#">

HomeController. cs

использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
использование System. Web.Mvc;
используя системы.Данных.Лицо;
использование Newproject.Модели;

пространство имен Newproject.Контроллеры
{
публичный класс HomeController : Controller
{
индекс public ActionResult()
{
возвращение смотреть();
}
public ActionResult Gender(строка SearchString)
{
Session ["SearchString"] = Final;
var vm = новый WelcomeVm();
vm. Genders = новый список & lt;SelectListItem>
{
новый SelectListItem { значение="мужчина", текст="мужской"}, новый SelectListItem { значение="женщина", текст="женщина"}
};
Видовая сумка.Название = SearchString;
смотреть возвращение(ВМ);
}
public ActionResult Welcome (строка SearchString, модель WelcomeVm)
{
Final = Session ["SearchString"];
обратный вид(модель);
}
окончательный объект { получить; набор; }
}
}



Индекс.cshtml по


@{
Видовая сумка.Title = " Добро Пожаловать";
}


@Html. Label ("Имя")




@использование (в формате HTML.Бигинформ("Пол", "Домой", FormMethod.Почта))
{
@Html. TextBox ("Строка Поиска");
< input id=" btnSubmit " name=" btnSubmit " placeholder=" test "type=" submit "value=" Search " />
}


Gender. cs

использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
использование System. Web.Mvc;

пространство имен Newproject.Модели
{
общественный класс WelcomeVm
{
public string Gender { set; get; }
public IEnumerable & lt;SelectListItem & gt; Genders { set; get; }
}
}

WelcomeVm. cs

использование системы.Коллекции.Общий;
использование System. Web.Mvc;
общественный класс WelcomeVm
{
public string Name { set; get; }
public string Gender { set; get; }
public IEnumerable & lt;SelectListItem & gt; Genders { set; get; }
}

Пол.cshtml по

@{
Видовая сумка.Название = " Пол";
строка CustNo = ViewBag.Имя;
}

@модель WelcomeVm
@использование (в формате HTML.Бигинформ("Приветствие", "Домашнее"))
{

Привет @CustNo каков ваш пол


&ЛТ;метка>в пол&ЛТ;/ярлык&ГТ;
@Html. DropDownListFor(s = & gt; s.пол, модель.Полы)
< input type= "submit" />
}


Добро пожаловать.cshtml по


@{
Видовая сумка.Title = " Добро Пожаловать";
строка SearchString =
}
}

@модель WelcomeVm

Привет @SearchString, который является @Model.Пол



Что я уже пробовал:

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

1 Ответов

Рейтинг:
0

Vignesh Mani

Вы можете использовать ViewBag, TempData, ViewData и Session - это техника управления состоянием в asp.Net Mvc, но вы можете использовать правильное место.

Если вам нужно использовать приложение Data hole, используйте сеанс.
Если вам нужно использовать один контроллер для другого контроллера, используйте TemData.
Если вам нужно использовать контроллер для соответствующего представления, используйте ViewBag и TempData.


Member 12637044

Я знаю, что должен использовать сеанс, но как. я попытался использовать его в своем коде, но ничего не вышло. Что я делаю не так