2017-02-07 3 views
-1

ich bin Tring Links zu haben Link zu diesem /Ansicht/Test es nur funktioniert, wenn es int wie/View/1Wie string id senden an die Steuerung mit Action

meiner Sicht Aktionslink

ist
@Html.ActionLink(item.className, "Viewe", "subject", new {id =item.className },null) 

meine Kontrolle Aktion

 public ViewResult Viewe(string id) 
    { 
     //some database 
     return View(); 
    } 

erhalte ich diesen Fehler Server Error in '/' Application. wenn ich die ID in jedem ändern was es funktioniert gut, aber der Link wird sieht aus wie dies: Blick etwas = par

Bild des Fehlers

image of the error

Route Code

  routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
+0

Überprüfen Sie Ihre ** Route.Config ** Datei unter * * App_Start **. Sie werden ein Code-Snippet finden, das die Route behandelt. Standardmäßig akzeptiert es 'controller/action/id'. Um "alles" als Parameter zu akzeptieren und eine benutzerfreundliche URL zu erstellen, müssen Sie eine benutzerdefinierte Route erstellen und den Parameter "id" durch "alles" ersetzen. – Prabhat

+0

Ich habe immer noch das selbe Problem, ich interessiere mich nicht, wenn ich param als "id" oder "irgendetwas" benutze, ID ist in Ordnung für mich, aber ich habe immer noch den gleichen Fehler –

+0

Verwenden Sie keine Aktion Name 'View', Sie sind Verbergen der parameterlosen Version der 'View'-Controller-Methode, die versucht, eine' .cshtml'-Datei mit dem entsprechenden Namen zu finden. Sie können folgendermaßen vorgehen: '[ActionName (" View ")] public ViewResult ViewAction (Zeichenfolgen-ID)' –

Antwort

0

das für mich arbeitet

@Html.ActionLink(item.ClassName, "Viewe", "Subject", new { Id = item.ClassName }, null) 
Verwandte Themen