2011-08-01 30 views
5

鑑於以下Html.ActionLink:在Razor/MVC3中使用@Html.ActionLink獲取原始文本?

從模型
@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在你的模型而不是你的看法?如果您需要將其加下劃線,請爲此添加樣式或類專有名稱。 – Phil

+0

從模型返回的數據基於關鍵字進行格式化。因此,該級別需要格式化。 – ElHaix

回答

13

如果你仍然想使用助手來創建鏈接文本的原始HTML的動作鏈接,那麼我不相信你可以使用Html.ActionLink。但是,this stackoverflow question的答案描述了創建一個幫助程序來完成此操作。

我會寫的鏈接HTML雖然手動和使用Url.Action幫助它創建其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> 

記住,剃刀助手,幫助你的情況下,但你仍然可以做的事情在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> 
相關問題