SORU
4 ŞUBAT 2011, Cuma


Eylem Resim MVC3 Razor

Ne görüntüleri MVC3 Razor kullanarak bağlantıları değiştirmek için en iyi yoldur. Ben sadece şu anda bu işi yapmaya

<a href="@Url.Action("Edit", new { id=MyId })"><img src="../../Content/Images/Image.bmp", alt="Edit" /></a> 

Daha iyi bir yolu var mı?

CEVAP
4 ŞUBAT 2011, Cuma


CSHTML dosyasında kodunu basitleştirmek için HtmlHelper için bir uzantısı yöntemi oluşturabilirsiniz. Böyle bir yöntem ile etiketleri değiştirmek olabilir:

// Sample usage in CSHTML
@Html.ActionImage("Edit", new { id = MyId }, "~/Content/Images/Image.bmp", "Edit")

İşte yukarıdaki kod için örnek uzatma yöntemi:

// Extension method
public static MvcHtmlString ActionImage(this HtmlHelper html, string action, object routeValues, string imagePath, string alt)
{
    var url = new UrlHelper(html.ViewContext.RequestContext);

    // build the <img> tag
    var imgBuilder = new TagBuilder("img");
    imgBuilder.MergeAttribute("src", url.Content(imagePath));
    imgBuilder.MergeAttribute("alt", alt);
    string imgHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);

    // build the <a> tag
    var anchorBuilder = new TagBuilder("a");
    anchorBuilder.MergeAttribute("href", url.Action(action, routeValues));
    anchorBuilder.InnerHtml = imgHtml; // include the <img> tag inside
    string anchorHtml = anchorBuilder.ToString(TagRenderMode.Normal);

    return MvcHtmlString.Create(anchorHtml);
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CNNMoney

    CNNMoney

    16 Kasım 2006
  • GWTLecturer

    GWTLecturer

    18 EKİM 2012
  • iNCH

    iNCH

    20 Temmuz 2009