【问题标题】:Where'd my generic ActionLink go?我的通用 ActionLink 去哪儿了?
【发布时间】:2010-09-11 10:38:09
【问题描述】:

从预览 2 移动到预览 5,现在我的 Html.ActionLink 调用都失败了。泛型版本似乎已被非类型安全版本取代。

// used to work
<li>
  <%= Html.ActionLink<HomeController>(c => c.Index(), "Home")%>
</li>
// what appears I can only do now
<li>
  <%= Html.ActionLink<HomeController>("Index", "Home")%>
</li>

顾家为什么要这么做?它是否已作为“未来”转移到 Microsoft.Web.Mvc 或其他地方?有没有通用的替代品?哈!

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    别怪顾家,是我的错。该方法已移至 MvcFutures。这是blog post that provides the foundation for why this change was made

    【讨论】:

    • 啊,来吧。好像您无法检查 Expression 中调用的方法以查看它是否具有 ActionNameAttribute。
    • 不,因为该属性可以动态应用,而不是直接应用在方法上。
    • 不要提及,还有其他扩展点可以在方法选择后更改操作名称。
    • 不可能有一个类似于接口的“操作接口”,该接口将以接口方式定义可用的操作,然后可以使用一种类型安全的方式访问操作。然后在启动时,可以将具体控制器分配为接口的实现,这样您就可以灵活地描述方法不一定是动作,但仍然能够使用类型安全的 ActionLinks 和 RenderActions。如果操作接口没有实现,VS 或 Resharper 会警告你(不是错误)。
    猜你喜欢
    • 2016-03-24
    • 1970-01-01
    • 2017-02-06
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 2011-03-03
    • 2014-03-15
    相关资源
    最近更新 更多