我正在尝试使用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)
有更多类似的静态类,如FormExtensions
,InputExtensions
等.
ASP.Net MVC如何处理它?它是否为Html.ActionLink生成动态代码?
该ActionLink
方法是扩展方法(因此this
在第一个参数的类型之前).这意味着您可以将此方法用作所有HtmlHelper
实例上的实例方法,即使它未定义HtmlHelper
.
Html
是类型视图中的属性HtmlHelper
.这意味着您可以ActionLink
在其上使用extensionmethod.
该ActionLink
方法本身只会生成一个链接字符串(关于其参数)并返回该字符串.