2017-01-25 3 views
1

Ich übergebe Wert Hin-und her Controller und Ansicht in MVC. Die Sache ist, wenn möglich, wollte ich meinen Variablennamen von der URL/Adressleiste von Benutzern verbergen, die ihn sehen. Ich habe Route Config versucht und tat, wie unten:Wie blende ich meinen Variablennamen aus der Adress-URL-Leiste?

routes.MapRoute(
     name:="Default2", 
     url:="{controller}/{action}", 
     defaults:=New With {.controller = "home", .action = "Lookup"} 
) 
routes.MapRoute(
     name:="Default", 
     url:="{controller}/{action}/{id}", 
     defaults:=New With {.controller = "home", .action = "Lookup", .id = UrlParameter.Optional} 
) 

ich auch unten versucht habe, ich weiß, es ist ziemlich absurd aussieht, aber ich habe es trotzdem versucht.

routes.MapRoute(
     name:="Default2", 
     url:="{controller}/{action}", 
     defaults:=New With {.controller = "home", .action = "Lookup"} 
) 
routes.MapRoute(
     name:="Default", 
     url:="{controller}/{action}/{id&name}", 
     defaults:=New With {.controller = "home", .action = "Lookup", .id = UrlParameter.Optional} 
) 

Ich habe beides versucht. Anstatt die Variable zu verbergen, die ich als Parameter im Controller übergeben habe, verbirgt sie meinen Controller und meine Aktion und zeigt nur den Variablennamen an.

http://localhost:11111/?id=P59068&name=Nurul 

Ich hatte gehofft, es wie folgt statt angezeigt werden würde:

http://localhost:11111/home/Lookup/P59068&Nurul 

Ich habe wie oben mehrere Websites gesehen zeigt, aber ich weiß nicht, ob was ich tue das Richtige erreiche was ich will. Was mache ich falsch? Kann mir bitte jemand helfen? Dies muss vor dem Default Route oder andere passende Routen

+0

Wahrscheinlich ist _Url: = "{controller}/{aktion}/{id}/{name}" _ – Steve

+0

Sie können nicht '/ home/Lookup/P59068 & Nurul' bekommen, aber Sie können'/home/Lookup/P59068/Nurul' - ist das akzeptabel? –

+0

@StephenMuecke das ist gut genug – Nurul

Antwort

1

Es ist nicht möglich /home/Lookup/P59068&Nurul zu generieren, aber Sie können /home/Lookup/P59068/Nurul generieren, indem Sie Ihre Default2 Route zu

routes.MapRoute(
    name:="Default2", 
    url:="home/lookup/{id}/{name}", 
    defaults:=New With {.controller = "home", .action = "Lookup"} 
) 

ändern.

Die zusätzlichen von den letzten zwei Segmente in der url Eigenschaft (/{id}/{name}) bedeutet, dass diese Werte als Routenwerte anstatt Abfrage hinzugefügt werden String-Parameter

Beachten Sie auch, könnte man /Lookup/P59068/Nurul (ohne das „home“ Präfix erzeugen unter Verwendung von url:="lookup/{id}/{name}")

+0

Ich habe versucht, aber es zeigt immer noch meine Variablennamen in der Adressleiste – Nurul

+0

Dann haben Sie nicht diese Route zuerst - Wenn Sie '@ Html.ActionLink (" xxx "," Lookup "verwenden würde , "Home", neues {id = "P59068", name = "Nurul"}, null) 'in einer Ansicht wird es erzeugen'/home.lookup/P59068/Nurul' –

+0

Wo stelle ich das hin? In jeder Hinsicht? Wo genau? Auf der Schaltfläche, die diese Werte an den Controller übergibt? – Nurul

Verwandte Themen