2016-07-15 49 views
-1

我已经张贴了这个问题,但没有人回答我的意见/错误,我有。如何在我的索引viw中获得@ Html.TextBox(“SearchString”)中输入的文本以使用会话变量欢迎视图?MVC C#项目会议

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> 
+0

如果你没有得到答案,然后再次问同样的问题是不正确的。相反,改善/编辑您现有的问题,添加更多信息以帮助人们回答问题。 – M4N

+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操作方法使用相同的视图模型作为您的参数类型。当表单被张贴时,默认模型粘合剂将映射发布形式值OT了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> 
+0

在我的Gender.cshtml页面中,它给了我一个错误。 @ Html.DropDownListFor(M => m.Gender,Model.Genders)表示,其一个InvalidOperationException被使用的代码 – LohithT

+0

unhandeled我所做的一切如你所说Shyju但在索引页文本页面中输入的名称不会在显示欢迎 – LohithT

+0

页关于第一个问题,你是加载性别集合中的根儿的操作方法?对于第二个评论,您是否在第二个视图(性别)中看到了该名称? – Shyju