我不喜欢 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());}
它不渲染任何东西。我在任何地方都犯了错误还是错过了什么?是否可以这样做,因为我喜欢类型安全的性质,而不是硬编码动作名称和控制器?