MVC C#会话项目

时间:2016-07-15 18:27:27

标签: c# asp.net asp.net-mvc session

我已经发布了这个问题,但没有人回答我的评论/错误。如何在索引视图中获取在@ Html.TextBox(“SearchString”)中输入的文本以使用会话变量来欢迎视图?

HomeController.Cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Data.Entity;
using Newproject.Models;

namespace Newproject.Controllers
{
 public class HomeController : Controller
  {
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Gender(WelcomeVm model)

    {
        model.Genders = new List<SelectListItem>
   {
     new SelectListItem { Value="Male", Text="Male"},
     new SelectListItem { Value="Female", Text="Female"}
    };
        return View(model);
    }
    [HttpPost]
    public ActionResult Welcome(WelcomeVm model)
     {
       return View(model);
     }
    public object Final { get; set; }
 }
 }

Index.cshtml

@{
ViewBag.Title = "Welcome";
}

<br />
@Html.Label("Name")
<br />
@using (Html.BeginForm("Gender", "Home", FormMethod.Post))
{
@Html.TextBox("Name");
<input id="btnSubmit" name="btnSubmit" placeholder="test" type="submit" value="Submit" />
}

Gender.cs

using System.Collections.Generic;
using System.Web.Mvc;
public class WelcomeVm
{
public string Name { set; get; }
public string Gender { set; get; }
public IEnumerable<SelectListItem> Genders { set; get; }
}

Gender.cshtml

@model WelcomeVm
@using (Html.BeginForm("Welcome", "Home", FormMethod.Post))
{
<p>Hello @Model.Name what is your gender</p>
@Html.DropDownListFor(m => m.Gender, Model.Genders)
@Html.HiddenFor(s => s.Name)
<input type="submit" />
}

Welcome.cshtml

@{
ViewBag.Title = "Welcome";
}

@model WelcomeVm
<p>Hello @Model.Name who is a @Model.Gender</p>

1 个答案:

答案 0 :(得分:1)

您不需要Session或ViewBag来传递数据。您可以简单地使用您拥有的视图模型。

所以在你的索引视图中,

@Html.Label("Name")  
@using (Html.BeginForm("Gender", "Home"))
{
  @Html.TextBox("Name");
  <input id="btnSubmit" name="btnSubmit" type="submit"    value="Submit" />
}

并在Gender操作方法中使用与参数类型相同的视图模型。发布表单时,默认模型绑定器将映射已发布的表单值或WelcomeVm类的对象。

[HttpPost]
public ActionResult Gender(WelcomeVm model)
{
   model.Genders = new List<SelectListItem>
   {
         new SelectListItem { Value="Male", Text="Male"},
         new SelectListItem { Value="Female", Text="Female"}
   };
   return View(model);
}

并在Gender.cshtml视图中再次强烈输入相同的视图模型。

@model WelcomeVm
@using (Html.BeginForm("Welcome", "Home", FormMethod.Post))
{
  <p>Hello @Model.Name what is your gender</p>
  @Html.DropDownListFor(m => m.Gender, Model.Genders)
  @Html.HiddenFor(s=>s.Name)
  <input type="submit" />
}

并在欢迎操作

[HttpPost]
public ActionResult Welcome(WelcomeVm model)
{
  return View(model);
}

并在Welcome.cshtml视图中,该视图再次强烈输入到您的视图模型

@model WelcomeVm
<p>Hello @SearchString who is a @Model.Gender</p>