2016-07-15 36 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