2011-08-20 41 views
1

我有類似下面的列表,這是很好的:Html.ActionLink和MvcHtmlString

<ul class="vlistmenu"> 
    @foreach (var m in Model) 
    { 
     <li class="forum">@Html.ActionLink(m.LinkName, "Details", "Forum", new { id = m.Id }, null)</li> 
    } 
</ul> 

現在我試圖格式化從調用Html.ActionLink產生的MvcHtmlString,並添加一些更多的信息。但下面的示例並不像我所希望的那樣工作。

<ul class="vlistmenu"> 
    @foreach (var m in Model) 
    { 
     var link = m.LinkName + "<br /><a style=\"font-size:smaller\">By: Ronron (July 11, 2011)</a>"); 
     <li class="forum">@Html.ActionLink(link, "Details", "Forum", new { id = m.Id }, null)</li> 
    } 
</ul> 

基本上我想是附加的文字串「到:Ronron(Jull 11,2011)」從我的模型,它是m.LinkName的信息。不過,我希望m.LinkName的字體大於附加的文字字符串。另外,文字字​​符串應該從下一行開始,緊挨着m.LinkName。組合的m.LinkName和附加的字符串將形成一個操作鏈接。

回答

2

如果我理解正確,你想寫html屬性到一個元素,所以你可以在html.actionlink html屬性上聲明它,就像你可以在代碼中看到的一樣(如果你想添加class屬性,你需要用@symbol寫新{風格= 「FONT-SIZE:小」,@class = 「xClass」}

<ul class="vlistmenu"> 
@foreach (var m in Model) 
{ 
    var link = m.LinkName + "<br /><a style=\"font-size:smaller\">By: Ronron (July 11, 2011)</a>"); 
    <li class="forum">@Html.ActionLink(link, "Details", "Forum", new { id = m.Id }, new { style = "font-size:smaller"})</li> 
} 

加成的評論,你可以寫一個自定義的助手

Raw ActionLink linkText

,或者你可以通過url.action方法手動標記,因此將根據實施手動

<a href="@Url.Action("Details","Forum",new { id = m.Id })">@m.linkname<br /><span style="font-size:smaller">By: Ronron (July 11, 2011)</span></a> 
+0

@Codemaster您的控制器動作,但標籤給的鏈接,謝謝您的回覆。英語不是我的自然語言,看起來這不適合我在這個特定的職位。我想要的是將字符串「By:Ronron(Jull 11,2011)」附加到來自我的模型的信息,即m.LinkName。不過,我希望m.LinkName的字體大於附加的文字字符串。另外,字符串應該在下一行(
?)開始,不要緊靠m.LinkName。 – Ronald

+0

@Ronald我編輯了答案.. – c0demaster

+0

這個答案可以做到這一點,但是我建議使用css來代替使用'
'元素,因爲它似乎沒有正確的語義含義這裏。 –