ASP.Net MVC ActionLink是如何工作的?

3

我正在尝试使用NHaml作为视图引擎,编写自己的轻量级MVC框架,适用于.Net 2.0。

在ASP.Net 3.5 MVC中,我们可以通过以下代码片段来指定链接:

Html.ActionLink("Add Product","Add");

在MVC二进制文件中,没有与此调用匹配的函数。
我只发现:
(在System.Web.Mvc.Html.LinkExtensions类中)
public static string ActionLink(this System.Web.Mvc.HtmlHelper htmlHelper, 
   string linkText, string actionName)

还有一些类似于FormExtensionsInputExtensions等静态类。

ASP.Net MVC是如何处理它的?它是否会为Html.ActionLink生成动态代码?

2个回答

5

ActionLink 方法是一个扩展方法(因此第一个参数类型前面有 this)。这意味着您可以将此方法用作所有 HtmlHelper 实例的实例方法,即使它未在 HtmlHelper 上定义。

Html 是视图的类型为 HtmlHelper 的属性。这意味着您可以在其上使用 ActionLink 扩展方法。

ActionLink 方法本身仅生成链接字符串(关于其参数)并返回该字符串。


0

你有没有在 Codeplex 上查看 code?MVC 框架是开源的,所以你可以随意挖掘。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接