@Html.ActionLink 太麻煩了

不吐不快!

Microsoft 攪的東西有些時候真是無聊!

這個 MVC Razor 中用的 @Html.ActionLink 其實就是 HTML 中的 a tag. 以下是我不滿的例子:

@Html.ActionLink("Home", "Index", "Home", new { id = "", sid = "" }, new {data_role="button", data_icon="arrow-u", data_iconpos="notext"})

<a href="@Url.Content("~/")Home/Index" data-role="button" data-icon="arrow-u" data-iconpos="notext">Home</a>

第一行是 Html.ActionLink 的用法. 為了要增加幾個 jQueryMobile 要用到的 attributes 就變成一句奇怪的 syntax. 中間的 id 和 sid 東西原本是 parameters, 在這裡雖然沒有用到, 因為要加上最後的 attributes, 就算沒有用, 也要寫上, 否則就是 syntax error 了. 那幾個 attributes 也有問題的, 因為 MVC 不接受 “-“, Microsoft 就取巧, 叫你用 “_” 他幫你生成 “-“, 攪成三不像!

第二行是沒有 Html.ActionLink, 衹採用了 Url.Content 來取得 root 的路徑. 清楚易明.
這個 Url.Content 也是找了一會才找到的, 以前是用 ResolveUrl, 在 Razor 中居然又要改了!