Ich stelle eine ähnliche Frage here Ich denke, das ist eine wirklich einfache (natürlich nicht für mich). Ich habe eine Erweiterungsmethode für HTML-Helfer und ich muss aktuelle URL der Ansicht mit HtmlHelper erhalten. Hat jemand eine Ahnung davon?Holen Sie aktuelle URL der URL mit HtmlHelper in ASP.NET MVC 3
Antwort
Wenn Sie nur die angeforderte URL möchten, können Sie es einfach über das Request.Url
Objekt erhalten. Dies gibt einen Uri zurück, aber wenn du die rohe URL willst, dann Request.RawUrl
.
wenn Sie Informationen über die Routen-Informationen zu erhalten, wie die Steuerung oder Aktionsmethode, die
genannt werden, können Sie das RouteData
Wörterbuch aus dem ViewContext
Objekt zugreifen
wie diese
@ViewContext.RouteData.Values["Controller"]
sein
mit dem RouteData
Wörterbuch können Sie alle benötigten Informationen über den Controller, Aktion und zusätzliche Parameter 'Name, je nachdem, was Sie wollen
Basierend auf Ihrem Kommentar und den ursprünglichen Thread Sie verknüpfen Ich glaube, Sie einen URL-Helfer verwenden mögen die URL für die Formularaktion zu erhalten, aber ich hätte falsch verstanden, was Sie wollen:
in einer Ansicht:
@Url.Action(null) returns the current controller/action
@Url.Action("Action") returns a custom action with current controller
@Url.Action("Action","Controller") returns a custom controller and action
In einem HTML-Helfer:
public static MvcHtmlString MySpecialHelper(this HtmlHelper htmlHelper)
{
UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext,htmlHelper.RouteCollection);
string url = urlHelper.Action("Controller","Action");
//To get the action based on the current Action/Controller use:
url = urlHelper.Action(htmlHelper.ViewData["action"] as string);
//or
url = urlHelper.Action(null);
return new MvcHtmlString(url);
}
Sie konnten die Request.RawUrl Eigenschaft oder Request.Url.ToString() oder Request.Url.AbsoluteUri verwenden.
können Sie verwenden ein Html Helper das Objekt Seite als Referenz vorbei, wie folgt aus:
@helper GoHome(WebViewPage page)
{
<a href="@page.Url.Action("Index", "Home")"></a>
}
Ein in der Ansicht verwenden Sie einfach:
@Links.GoHome(this)
- 1. Anfügen an aktuelle URL in ASP.NET MVC
- 2. Aktuelle URL vom Browser holen
- 3. Holen Sie sich aktuelle URL in Python
- 4. URL aus HtmlHelper erstellen
- 5. SiteMap HtmlHelper ASP.NET MVC
- 6. Verwenden Sie htmlhelper, um Aktion in BeginForm() Methode von ASP.NET MVC 3
- 7. ASP.NET MVC-URL-Routen
- 8. MVC 3 htmlhelper Erweiterung Methode, um Inhalt
- 9. ASP.NET MVC - URL Aktionspfad
- 10. asp.net mvc url routing
- 11. Recht URL ASP.NET MVC
- 12. ASP.NET MVC HomeController URL
- 13. ASP.NET MVC Colon in URL
- 14. einschließlich ‚@‘ in ASP.NET MVC URL
- 15. Verschlüsseln der URL in ASP.Net MVC 4
- 16. Holen Sie sich die aktuelle Seite URL in Magento 2.0
- 17. Generieren einer URL unabhängig von Controllern in ASP.NET MVC 3
- 18. jQuery/JS: Holen Sie sich aktuelle URL übergeordnete Verzeichnis
- 19. Verwenden Sie benutzerdefinierte ASP.NET MVC HtmlHelper-Erweiterungen?
- 20. Holen Sie sich aktuelle URL-Adresse des Browsers
- 21. Aktuelle Browser-URL abrufen - ActionScript 3
- 22. ASP.NET MVC Action mit Linktext = absolute URL
- 23. Nullreferenceexception Problem mit ASP.NET MVC Textbox Htmlhelper
- 24. ASP.NET MVC Standard-URL-Ansicht
- 25. objektorientierte URL-Schema in asp.net MVC 2
- 26. Asp.net MVC SEO Freundliche URL
- 27. eine URL erstellen und die URL in Asp.Net MVC
- 28. Aktuelle URL in vb.net
- 29. Holen Sie Seiteninhalt von URL?
- 30. ASP.NET MVC URL-Routing mit mehreren Routenwerten
Sie werden im Auge behalten, dass ein Ansicht ist nicht dasselbe wie eine Controller-Aktion. MVC-Routen basieren auf Controllern und Aktionen. Aktionen können jede Ansicht als Ausgabe angeben. Das bedeutet, dass Sie nicht immer darauf vertrauen können, dass der Name der Ansicht mit der Aktion identisch ist. Können Sie uns ein Beispiel dafür geben, was Sie damit versuchen? –
@Nick Bork Eigentlich stelle ich hier eine Hauptfrage: http://stackoverflow.com/questions/10069687/use-htmlhelper-to-get-action-in--beginform-method-of-asp-net-mvc-3 I brauche einen Wert für das action-Attribut im form-Tag und ich denke, dieser Wert ist gleich der Url der aktuellen Ansicht. – Saeid
Views haben keine URLs, Controller-Aktionen tun dies. Eine Ansicht ist nur ein Blob von HTML. Ihre Aktionen führen einige CRUD auf dem Server durch und entscheiden dann, welcher Blob von HTML zurückgegeben werden soll. Sie können NIEMALS auf eine Ansicht zugreifen, ohne eine Controller-Aktion auszuführen (mit Ausnahme einer PartialView, die in einer Ansicht verschachtelt ist). Am häufigsten entsprechen die Namen der Namen den Namen der Aktionen, dies ist jedoch nicht immer der Fall. Ich habe ein Codebeispiel für die Verwendung eines URL-Helfers hinzugefügt. Der URL-Helper ermöglicht es Ihnen, die URL für eine bestimmte Route oder Controller-Aktion zu erhalten. Das sollte Ihnen helfen, das Action-Tag eines Formulars aufzufüllen. –