Announcement

Collapse
No announcement yet.

Erzeugen von Links in PartialViews mit neuen URL-Parametern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Erzeugen von Links in PartialViews mit neuen URL-Parametern

    Hallo,

    ich habe eine Reihe von PartialViews für verschiedene Komponenten (Diagramme, Tabellen, ...).
    Ich würde nun gerne in einen PartialView einen Link einbauen, der auf die aktuelle Seite (die den PartialView enthält) verweist und nur einen Parameter im QueryString anfügt, bzw. ersetzt, wenn er schon gesetzt ist (z.B. Artikelnummer=1234)
    Ich könnte nun die Request.Url aufwendig parsen und ggf. Strings ersetzen um dann wieder darauf zu verweisen.
    Ich habe aber die Hoffnung, dass es einfacher geht. Geht sowas mit Html.ActionLink? Ich kenn ja im PartialView nicht hard gecoded die Views und Controller, unter denen der PartialView zum Einsatz kommt. Gibt es sowas wie Html.ActionLink("bla",CurrentController,CurrentAct ion,CurrentParameter)?

    Habt vielen Dank

  • #2
    Code:
    @{
      var values = this.ViewContext.RouteData.Values;
      @Html.ActionLink("meinLink", (string)values["action"], (string)values["controller"], new { artikelnummer = "12345" }, null);
    }
    So gehts bei mir. Allerdings wäre es auch zu überlegen dafür ein eigenes ViewModel zu erzeugen, welches der Controller der eigentlich ausgeführten Action erzeugt und es dann an den Partial weiter gibt. Das fände ich irgendwie transparenter. Der Weg oben wäre mir zu Magic.

    P.S.: Wenn Du einen komplett eigenständigen Child hast (ähnlich einem Widget), dann kannst Du auch eine Child Action verwenden. Siehe hier: http://msdn.microsoft.com/en-us/library/ee839451.aspx

    Das Ding hat dann seinen eigenen Controller. An den ParentController kommt man dann über ParentControllerContext.
    Zuletzt editiert von fanderlf; 10.06.2011, 18:25.

    Comment


    • #3
      Danke für deine Antwort.
      Allerdings erzeugt das ja nur einen Link, der genau den Parameter "Artikelnummer" enthält und löscht mit damit alle schon gesetzten möglichen query-String-Parameter.

      Ich hab die Ahnung, als komme ich um ein aufwendiges Parsen des aktuellen QueryStrings mit der Suche nach dem einen Parameter und dessen Ersetzung nicht umhin.

      Comment

      Working...
      X