我正在尝试使用 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生成动态代码?
答案 0 :(得分:5)
ActionLink
方法是一种扩展方法(因此在第一个参数的类型之前是this
)。这意味着您可以将此方法用作所有HtmlHelper
实例上的实例方法,即使它未在HtmlHelper
上定义。
Html
是类型HtmlHelper
的视图上的属性。这意味着您可以使用ActionLink
扩展方法。
ActionLink
方法本身只会生成一个链接字符串(关于其参数)并返回该字符串。
答案 1 :(得分:0)
你有没有检查过Codeplex上的code? MVC框架是开源的,因此您可以根据需要进行挖掘。