私と同僚は、ページ上にリンクを生成する方法について話し合っています。HTMLヘルパーを使用する必要がありますか、それともビューに非常に単純なビューロジックを保持する必要がありますか?
このプロジェクトでは、CastleMonorailとNVelocityビューエンジンを使用しています。以下の両方の選択肢を検討し、意見を述べてくださった方に感謝いたします。
このストーリーでは、リンクは現在1ページでのみ使用されています。
オプション1-ヘルパー付き
ヘルパーコード
var action = snail.IsActive ? "ConfirmDeactivate" : "ConfirmActivate";
var routeValues = new Dictionary<string, string>
{
{"action", action},
{"querystring", "id=" + snail.ID}
};
var href = UrlHelper.For(routeValues);
var link = new XElement("a");
link.SetAttributeValue("href", href);
link.SetValue(action.Substring(7));
return link.ToString();
そして、ビューでは、次のようにヘルパーを呼び出します。
<li>$Html.SnailActivationSwitchLink($item)</li>
オプション2-すべてビュー内
#if($snail.IsActive)
<a href="$Url.For("%{action='ConfirmDeactivate', querystring='id=$snail.ID'}")">Deactivate</a>
#else
<a href="$Url.For("%{action='ConfirmActivate', querystring='id=$snail.ID'}")">Activate</a>
#end