2016-07-13 6 views
0

Ich versuche eine Dropdown-Liste für Geschlecht (gender.cshtml) zwischen meiner index.cshtml und welcome.cshtml Seite zu erstellen, wie mache ich das. Eine andere Frage ist, wenn jemand sein Geschlecht in der gender.cshtml Seite auswählt, wie kann ich es in der welcome.cshtml Seite erscheinen lassen. Zum Beispiel, wenn jemand männlich auswählt, sollte es als WILLKOMMEN "der Name, der in das Index-Textfeld eingegeben wurde" erscheinen, der ein MÄNNER ist.C# MVC DropDownList

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(); 
    } 
    public ActionResult Gender() 
    { 
     return View(); 
    } 
    public ActionResult Welcome(string SearchString) 
    { 
     ViewBag.Name = SearchString; 
     return View(); 
    } 
    } 
    } 

Index.cshtml

@{ 

ViewBag.Title = "Welcome"; 

} 

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

USER.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Newproject.Models 
{ 
public class User 
{ 
    public string SearchString { get; set; } 
} 
} 

Gender.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace Newproject.Models 
{ 
public class Gender  
{ 
    public string Name { get; set; } 
} 
} 

Gender.cshtml

@{ 
ViewBag.Title = "Gender"; 
} 

<h2>Gender</h2> 

Welcome.cshtml

@{ 
ViewBag.Title = "Welcome"; 
string CustNo = ViewBag.Name; 
} 


    <p>Welcome @CustNo</p> 
+0

Anzeige Was bedeutet die "zwischen meiner index.cshtml und welcome.cshtml Seite" auch bedeuten? –

+0

Wo genau möchten Sie diese Dropdown-Liste? –

+0

Zwischen der Indexansichtsseite und der Begrüßungsansicht, wie in homecontroller.cs gezeigt, wird nur eine Dropdownliste mit männlich und weiblich angezeigt und wenn der Kunde auswählt, welches Geschlecht er/sie hat, wird er über die Sitzung zur Begrüßungsseite übertragen – LohithT

Antwort

0

können Sie ein View-Modell verwenden, um Daten zwischen Ihrer Sicht zu übertragen (s) und Aktionsmethode (n). View-Modell ist nur eine einfache POCO-Klasse.

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;} 
} 

Jetzt in Ihrem Geschlecht GET Aktion, erstellen Sie ein Objekt dieser, Last Genders Eigenschaft und

public ActionResult Gender() 
{ 
    var vm = new WelcomeVm(); 
    vm.Genders = new List<SelectListItem>{ 
     new SelectListItem { Value="Male", Text="Male"}, 
     new SelectListItem { Value="FeMale", Text="FeMale"} 
    }; 
    return View(vm); 
} 

In Ihrem Geschlecht Ansicht

@model WelcomeVm 
@using(Html.BeginForm("Welcome","YourControllerNameHere")) 
{ 
    <label>Name </label> 
    @Html.TextBoxFor(s=>s.Name) 
    <label>Gender</label> 
    @Html.DropDownListFor(s=>sGender,Model.Genders) 
    <input type="submit" /> 
} 

Jetzt in Ihrem Willkommen in der Ansicht senden action-Methode können Sie dasselbe Ansichtsmodell wie den Parametertyp verwenden, sodass die Modellbindung perfekt funktioniert, und die Daten der gebuchten Formulardaten einem Objekt dieser Klasse zuordnen.

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

und in der Welcome.cshtml Rasierapparat Ansicht, es einfach

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

begrüßen zu lassen gibt es einen Fehler in meiner Gender.cs Seite – LohithT

+0

öffentlichen IEnumerable Genders {set; bekommen; } – LohithT

+0

Es besagt, dass der Typ des Namensbereichsnamen 'SelectListItem' nicht gefunden wurde (fehlt eine using-Direktive oder eine Assemblyreferenz?) – LohithT