2010-12-16 12 views
1

Wenn ich diesen Weg haben:MVC Routenparameter

routes.MapRoute(
       "BlogRoute", // Route name 
       "blog/{action}", // URL with parameters 
       new { controller = "Blog", action = "Index", id="abc" } // Parameter defaults 
      ); 

... und haben diese Index-Methode in der Steuerung:

public ActionResult Index(string id) 
     { 
      return View((object)id); 
     } 

Ist es möglich, dass jemand aus, dass id-Parameter zu ändern " abc "zu etwas anderem? Wenn Sie zum Beispiel? Id = somethingElse an die URL anhängen? Ich habe es versucht, aber es hat sich nicht geändert. Ist es also garantiert, dass ich bei der Index-Methode immer "abc" bekomme?

Grundsätzlich muss ich eine fest codierte Zeichenfolge senden, wenn eine Route ausgewählt ist, und ich möchte nicht, dass der Benutzer diese Zeichenfolge über die URL oder einen anderen Mechanismus ändern kann. Es ist wie "abc" ist ein Passwort (es ist nicht, aber nehme einfach an es ist). Nur der Entwickler darf diese Zeichenfolge festlegen, indem er Global.asax.cs bearbeitet.

Ist es möglich?

Antwort

0

Sie eine Einschränkung für den id-Parameter hinzufügen können die regulären Ausdruck/abc/

+0

Wenn ich tun:?/Blog id = 123, der Parameter, die ich auf dem Index-Methode erhalten, ist nach wie vor „abc“ nicht " 123 ". Ich frage mich, ob ich wirklich eine Einschränkung brauche? Ist die Art und Weise, wie ich meine Route angegeben habe, nicht garantiert, dass ich immer id "abc" habe? – Caverna2010

+0

Ich habe nicht bemerkt, dass {id} in der Routendefinition fehlte. Sie können meinen vorherigen Kommentar in diesem Fall ignorieren. Ich denke, Sie sollten mit der Route in Ordnung sein, wie es ist. – Chandu

+0

Danke. Ich habe bemerkt, dass ich Data Tokens auch für das verwenden kann, was ich brauche. – Caverna2010

Verwandte Themen