ActionLink htmlAttributes


88

İŞLER

<a href="@Url.Action("edit", "markets", new { id = 1 })" 
            data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right">Edit</a>

ÇALIŞMIYOR - NEDEN?

@Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"})

HtmlAttributes'a data-icon = "gear" gibi bir şey geçiremiyor musunuz?

Öneriler?

Yanıtlar:


204

Sorun, anonim nesne özelliğinizin data-icon geçersiz bir ada sahip olmasıdır. C # özelliklerinin adlarında tire işareti olamaz. Bunu aşmanın iki yolu vardır:

Kısa çizgi yerine alt çizgi kullanın (MVC, verilen HTML'de alt çizgiyi otomatik olarak kısa çizgi ile değiştirir):

@Html.ActionLink("Edit", "edit", "markets",
      new { id = 1 },
      new {@class="ui-btn-right", data_icon="gear"})

Bir sözlükte yer alan aşırı yüklemeyi kullanın:

@Html.ActionLink("Edit", "edit", "markets",
      new { id = 1 },
      new Dictionary<string, object> { { "class", "ui-btn-right" }, { "data-icon", "gear" } });

2
Alt çizgi Ajax.ActionLinkyardımcılarla işe yaramıyor gibi görünüyor
Dmitry Efimenko

1
Alt çizgi numarası kulağa çok garip geliyor, ya html niteliğinizde bir alt çizgi istiyorsanız?
Michiel

1
@MichielReyers, Sözlükte yer alan aşırı yüklemeyi kullanabilirsin
marcind

1
.net Çekirdek Etiket Yardımcıları tüm bu sorunları ortadan kaldırır - gelecekten merhaba.
niico

26

İstenen kısa çizgiyi bir alt çizgiyle değiştirin; otomatik olarak kısa çizgi şeklinde gösterilecektir:

@Html.ActionLink("Edit", "edit", "markets",
    new { id = 1 },
    new {@class="ui-btn-right", data_icon="gear"})

şu hale gelir:

<form action="markets/Edit/1" class="ui-btn-right" data-icon="gear" .../>

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.