考慮擴展方法,其目的是既:ASP.NET MVC - HTML擴展方法建立的網址或鏈接
- 渲染
<a>
標籤 - 在某些情況下,只返回一個字符串,沒有鏈接
問:在一個擴展方法,你怎麼能與路由值等利用適當的路由邏輯,而不是硬編碼日e字符串。我懷疑HtmlHelper.GenerateRouteLink
是解決方案的一部分,但請提出實現此目標的最佳方法。
public static string CreateUserLink(this HtmlHelper html, string userAcctName)
{
if (string.IsNullOrEmpty(userAcctName))
return "--Blank--";
//some lookup to A.D.
DomainUser user = ADLookup.GetUserByAcctName(userAcctName);
if (user == null)
return userAcctName;
//would like to do this correctly!
return string.Format("<a href='/MyAppName/User/View/{0}' title='{2}'>{1}</a>"
, user.Mnemonic, user.DisplayName, user.Location);
//normally returns http://mysite.net/MyAppName/User/View/FOO
}
更多信息:
- 使用ASP.NET MVC 1.0
+1謝謝尼爾。我編輯了您的答案,以適應我爲使其發揮作用所做的更改。 'MergeAttribute'更合適,而ViewContext.RequestContext是可用的對象而不是ResponseContext。感謝您的示例代碼! – 2010-01-08 18:10:25
不錯的解決方案。 +1 – 2010-01-08 18:21:39