私は Url.Action("string", "string) が好きではないので、拡張メソッドの下に書きました
public static string Action<TController>(this UrlHelper urlHelper, Expression<Func<TController, object>> actionExpression)
{
var controllerName = typeof(TController).GetControllerName();
var actionName = actionExpression.GetActionName();
return urlHelper.Action(actionName, controllerName);
}
以下のようにカミソリビューで使用します。
@{Url.Action<ClientController>(action => action.ClientDetails());}
何もレンダリングしません。私はどこかで間違いを犯していますか、それとも何か不足していますか? アクション名とコントローラーをハードコーディングするのではなく、タイプセーフの性質が好きなので、これを行うことは可能ですか?