ActionLink

    ActionLink主要是一个连接,它定义了10个重载的扩展方法供开发者使用。

    

Html.ActionLink("LinkName","actionName")
这段代码对应的Html如下
<a href="/Home/actionName">LinkName</a>
在上面的代码中设置了一个“LinkName”的链接,该链接指向了"/Home/actionName"。

让我们看看ActionLink怎么具体实现的吧,代码如下:

 

public static string ActionLink(this AjaxHelper ajaxHelper, string linkText, 
        string actionName, string controllerName, RouteValueDictionary routeValues, 
        AjaxOptions ajaxOptions, IDictionary<string, object> htmlAttributes) {
   
if (String.IsNullOrEmpty(linkText)) {
       
throw new ArgumentException(MvcResources.Common_NullOrEmpty, "linkText");
    }

   
string targetUrl = UrlHelper.GenerateUrl(null, actionName, controllerName,
       routeValues, ajaxHelper.RouteCollection, 
         ajaxHelper.ViewContext.RequestContext, true /* includeImplicitMvcValues */);

   
return GenerateLink(linkText, targetUrl, GetAjaxOptions(ajaxOptions), htmlAttributes);
}

 根据上述代码可以看出ActionLink其实根据Action、Controller、linkText信息,通过GenerateLink生成了我们需要的HTML代码的,

 影响GenerateLink的还有Route。 

  

 

 

 

 

posted on 2010-11-29 14:35  异样的世界  阅读(612)  评论(0编辑  收藏  举报