2011-08-01 3 views
5

Учитывая следующий Html.ActionLink:Получение исходного текста с использованием @ Html.ActionLink в 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 }, ... 

данных из модели содержит HTML в поле заголовка. Однако я не могу отображать значения, закодированные в HTML. то есть. подчеркнутый текст появляется с <u>....</u> вокруг него.

Я пробовал Html.Raw в текстовой части ActionLink, но не пошел.

Любые предложения?

+1

Почему вы сдачи html в вашей модели вместо вашего вида? Если вам нужно подчеркнуть это, добавьте для этого стиль или класс attibute. – Phil

+0

Данные, возвращаемые с модели, форматируются на основе ключевых слов. Таким образом, форматирование требуется на этом уровне. – ElHaix

ответ

13

Если вы все еще хотите использовать помощник для создания ссылки действия с необработанным HTML для текста ссылки, то я не думаю, что вы можете использовать Html.ActionLink. Однако ответ this stackoverflow question описывает создание помощника, который делает это.

Я хотел бы написать ссылку HTML вручную, хотя и использовать Url.Action помощника, который создает URL, который Html.ActionLink бы создали:

<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

Отличный ответ +1. Я искал решение, основанное на не-Helper, на всех веб-сайтах, но все, что я получал, помогал на основе решений. Вы сделали мой день! ура :) –

0

MVCHtmlString.Create должен сделать трюк.

0

Используя ссылку actionlink ниже, вам не нужно передавать html в модель. Пусть класс css или встроенный стиль определяют способ декорирования href.

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

Украшение не для всей строки, только ее часть, поэтому я не думаю, что это будет сделано. – ElHaix

0

те случаи, которые вы должны принять другой путь

@{ 
    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> 

Помните, что Razor помощники, которые помогут вам, но вы можете сделать что-то в HTML образом.

0

Вы также могли бы использовать это:

<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> 
Смежные вопросы