2017-05-09 8 views
0

ich zur Zeit auf den folgenden Link hat, die von einer Ansicht zum anderen navigiert:ASP.Net MVC - Pass Parameter aus Sicht mit a href

"<td class='EmployeeTableTD'><a href='personDetails'>" + item.Name + " " + item.Surname + "</a></td>" + 

Die Tabelle dynamisch in Javascript erstellt und die Daten erhält (Artikel) aus einem ADO-Modell.

Ich möchte Parameter anhängen, um sie an die Steuerung und dann an die Ansicht des nächsten Bildschirms zu übergeben.

I haben versucht, die üblichen

'personDetails?myParameter=' + item.Name 

Art der Methode machen, aber dies eine 404-Fehler verursacht hat. Ich habe auch versucht, ein @ HTML.ActionLink in den Code einzufügen, aber das ist auch problematisch, da das Intellisense "Element" nicht erkennt, wenn versucht wird, die Parameter festzulegen.

Gibt es eine Möglichkeit, dynamische Parameter von diesem View-Link zum nächsten Controller/View zu übergeben?

Controller:

using System; 
... 
namespace techTest4.Controllers 
{ 
    public class HomeController : Controller 
    { 
     private TechTestEntities techContext = new TechTestEntities(); 

     public ActionResult personDetails() 
     { 
      return View(); 
     } 

     public ActionResult Index() 
     { 
      return View(); 
     } 

Also meine Navigation geht richtig zu 'Home/personDetails' und die 'personDetails.cshtml' Ansicht (die noch in ihm wenig, aber muss Ausgang geleitet, um die Parameter). Es sollte wohl zu 'Home/personDetailsController/{someIndexMethod}' gehen, wo die Einrichtung der nächsten Seite gehandhabt würde.

Config:

routes.MapRoute(
       name: "Details", 
       url: "PeopleDetails/{action}/{id}", 
       defaults: new 
       { 
        controller = "PeopleDetails", 
        action = "All", 
        id = UrlParameter.Optional 
       } 
      ); 
+0

Können Sie uns zeigen Sie Ihren Controller? – DCruz22

+0

Wie lauten die Controller- und Methodennamen, zu denen Sie navigieren möchten? –

+1

Ihre Methode 'personDetails' verwendet keine Parameter. –

Antwort

2

Sie müssen die Parameter angeben, die Sie erhalten in Ihrer Aktion:

public ActionResult personDetails(String myParameter) 
{ 
    return View(); 
} 
+0

danke, also bedeutet das, dass ich die normale Methode methodName? Parameters = verwenden kann, wenn dieser Fix angewendet wird? – peanut

+0

Ja, Sie haben den Parameter in der Aktion vermisst, so dass der Browser nicht genau wusste, welche Ansicht gerendert werden soll. – DCruz22