ASP.Net MVC ActionLink如何工作?

时间:2009-03-05 10:02:00

标签: asp.net-mvc

我正在尝试使用 NHaml 作为视图引擎为.Net 2.0编写自己的LightWeight MVC。

在ASP.Net 3.5 MVC中我们用来通过代码片段指定链接的View文件。

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 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:0)

你有没有检查过Codeplex上的code? MVC框架是开源的,因此您可以根据需要进行挖掘。