Feedback

C# - MVC: Link-Button erstellen

Veröffentlicht von am 7/6/2015
(0 Bewertungen)
Diese Erweiterungsmethoden rendern Buttons die zur angegebenen URL bzw. Action/Controller führen.

Der Aufruf erfolgt wie gewohnt über die @Html-Eigenschaft und den jeweiligen Methoden Namen mit Parametern.

Benötigte Namespaces
System.Text
System.Web.Mvc
/// <summary>
/// Rendert ein &lt;input&gt;-Element Button der mittels JavaScript zur angegebenen Action navigiert.
/// </summary>
/// <param name="helper">Eine <see cref="System.Web.Mvc.HtmlHelper"/>-Instanz.</param>
/// <param name="content">Der anzuzeigende Inhalt in dem Button.</param>
/// <param name="actionName">Der Name der Action zu der navigiert werden soll.</param>
/// <returns>Ein HTML-String.</returns>
public static MvcHtmlString ActionButton(this HtmlHelper helper, string content, string actionName)
{
    var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
    return LinkButton(helper, content, urlHelper.Action(actionName));
}
/// <summary>
/// Rendert ein &lt;input&gt;-Element Button der mittels JavaScript zur angegebenen Action in dem angegebenen Controller navigiert.
/// </summary>
/// <param name="helper">Eine <see cref="System.Web.Mvc.HtmlHelper"/>-Instanz.</param>
/// <param name="content">Der anzuzeigende Inhalt in dem Button.</param>
/// <param name="actionName">Der Name der Action zu der navigiert werden soll.</param>
/// <param name="controllerName">Der Controller in dem die Action liegt zu der navigiert werden soll.</param>
/// <returns>Ein HTML-String.</returns>
public static MvcHtmlString ActionButton(this HtmlHelper helper, string content, string actionName, string controllerName)
{
    var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
    return LinkButton(helper, content, urlHelper.Action(actionName, controllerName));
}

/// <summary>
/// Rendert ein &lt;input&gt;-Element Button der mittels JavaScript zur angegebenen URL navigiert.
/// </summary>
/// <param name="helper">Eine <see cref="System.Web.Mvc.HtmlHelper"/>-Instanz.</param>
/// <param name="content">Der anzuzeigende Inhalt in dem Button.</param>
/// <param name="url">Die URL zu der navigiert werden soll.</param>
/// <returns>Ein HTML-String.</returns>
public static MvcHtmlString LinkButton(this HtmlHelper helper, string content, string url)
{
    var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);

    var sb = new StringBuilder();
    sb.Append("<input type=\"button\" onclick=\"window.location.href='");
    sb.Append(urlHelper.Content(url));
    sb.Append("';\" value=\"");
    sb.Append(content);
    sb.Append("\"/>");

    return new MvcHtmlString(sb.ToString());
}
Abgelegt unter MVC, Button, Linq, Erweiterungsmethode, Extension.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!