Я начинающий, когда дело доходит до ASP.net MVC, и пока не работаю с моделями.Это всего лишь тестовый проект.
Я создал простую форму в представлении под названием Index.Здесь пользователь должен написать свое имя, а затем он направляет пользователя в представление «Пуск», в котором отображается его имя, имя сохраняется с помощью сеансов.
Этот первый метод просто проверяет, написал ли пользовательих имя и направляет пользователя к представлению «Пуск», если переменная сеанса имени уже существует.
[HttpPost]
public ActionResult Index(FormCollection form)
{
string username = form["Username"].ToString();
if (string.IsNullOrEmpty(username))
{
ViewBag.Error = "Field can not be empty";
return View();
}
else
{
Session["Username"] = username;
return View("Start");
}
}
Следующий метод просто снова проверяет, задано ли имя, и отображается ли имя.
public ActionResult Start()
{
if ((Session["Username"]) == null)
{
return View("Index");
}
else
{
ViewBag.User = Session["Username"].ToString();
return View();
}
}
Все работает нормально, когда URL-адреса верны, например, когда я набираю Home / Start сам после того, как имя было сохранено.Но просто возвращение начального вида просто говорит "Добро пожаловать!"только с пробелом, где имя должно было быть.
Это все в одном контроллере.
Я замечаю, что возвращение представления не меняет URL на новый.Я предполагаю, что это причина, по которой это не удается.Я искал какое-то время безуспешно, хотя подозреваю, что это очень просто ... Я должен использовать сеансы, хотя.Как я могу сделать эту работу?