2011-08-01 15 views
5

Biorąc pod uwagę następujące Html.ActionLink:Uzyskiwanie nieprzetworzonego tekstu za pomocą @ Html.ActionLink w Razor/MVC3?

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"].ToString(), "ItemLinkClick", 
    new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 }, ... 

dane z modelu zawiera HTML w polu nazwy. Jednak nie mogę wyświetlić wartości zakodowanych w HTML. to znaczy. podkreślony tekst pojawia się wokół niego z <u>....</u>.

Próbowałem już Html.Raw w części tekstowej ActionLink, ale nie ma go.

Wszelkie sugestie?

+1

Czemu oddanie html w swoim modelu zamiast widoku? Jeśli potrzebujesz podkreślenia, dodaj do tego styl lub klasę. – Phil

+0

Dane wracające z modelu są sformatowane na podstawie słów kluczowych. Dlatego formatowanie jest wymagane na tym poziomie. – ElHaix

Odpowiedz

13

Jeśli nadal chcesz użyć helpera do utworzenia linku akcji z nieprzetworzonym kodem HTML dla tekstu linku, nie wierzę, że możesz użyć Html.ActionLink. Jednak odpowiedź na this stackoverflow question opisuje tworzenie pomocnika, który to robi.

chciałbym napisać HTML Link ręcznie chociaż i używać Url.Action pomocnika, który tworzy adres URL, który Html.ActionLink byłby Utworzono:

<a href="@Url.Action("ItemLinkClick", new { itemListID = @Model.dsResults.Tables[0].Rows[i]["ItemListID"], itemPosNum = i+1 })"> 
    @Html.Raw(Model.dsResults.Tables[0].Rows[i]["title"].ToString()) 
</a> 
+0

Doskonała odpowiedź +1. Szukałem rozwiązania opartego na nie-pomocnika w całej sieci, ale wszystko, co robiłem, uzyskiwałem dzięki rozwiązaniom opartym na pomocy technicznej. Zrobiłeś mój dzień! Twoje zdrowie :) –

0

MVCHtmlString.Create powinien załatwić sprawę.

0

Korzystając z poniższego linku akcji, nie trzeba przekazywać html w modelu. Niech styl css lub styl inline określa sposób dekorowania href.

@Html.ActionLink(Model.dsResults.Tables[0].Rows[i]["title"], "ItemLinkClick", "Controller", new { @class = "underline", style="text-decoration: underline" }, null) 
+0

Dekoracja nie jest dla całego łańcucha, tylko jego część, więc nie sądzę, że to zrobi. – ElHaix

0

są to sprawy, które należy podjąć inną ścieżkę

@{ 
    string title = Model.dsResults.Tables[0].Rows[i]["title"].ToString(), 
      aHref = String.Format("/ItemLinkClick/itemListID={0}&itemPosNum={1}...", 
         Model.dsResults.Tables[0].Rows[i]["ItemListID"], 
         i+1); 
} 

<a href="@aHref" class="whatever">@Html.Raw(title)</a> 

Pamiętaj, że pomocnicy brzytwa pomóc, ale nadal można robić rzeczy w sposób HTML.

0

Można również użyć tego:

<a class='btn btn-link' 
    href='/Mycontroler/MyAction/" + item.ID + "' 
    data-ajax='true' 
    data-ajax-method='Get' 
    data-ajax-mode='InsertionMode.Replace' 
    data-ajax-update='#Mymodal'>My Comments</a> 
Powiązane problemy