1.MVC中当做了伪静态后如果你想用a标签结合后台传过来的数据生成一个链接的话如:<a href="/View/763.html">本命佛</a>

 你可以选择扩展url( UrlHelper类型),通过urlhelper中的RouteUrl方法来匹配路由名字返回url

  如下:HTML代码

<a href='<%=Url.ViewWord(word) %>'><img src='<%=word.Image.ReplaceContent("show") %>' alt="<%=word.Title %>" style="height: 140px; width: 170px;" class="pic" /></a>
View Code

 url扩展方法

        public static string ViewWord(this UrlHelper urlHelper, Word word)
        {
            return urlHelper.RouteUrl("View", new { id = word.WordID });
        }
View Code

说明:其中View是一个路由的名字,定义如下,最后根据id返回/View/763.html

  routes.MapRoute(
           "View",
           "View/{id}.html",
           new { controller = "Wiki", anonymous = true, action = "View", id = "" },
            new { id = @"[\d]{1,12}" },
           controllerNamespaces
           );
View Code

2.还可以通过 <%= Html.ActionLink(word.Title, "View", new { id = word.WordID })%>生成一个超链接(说明:View是action的名字)

  action定义如下:

 [OutputCache(CacheProfile = "Cache20M", VaryByParam = "id")]//Duration = 60
        [ActionName("View")]
        public virtual object ViewWord(int id)
        {
            if (id <= 0)
                return RedirectToAction("CreateIndex");

            EditorWord word = m_WikiSwervice.GetWord(id);

            if (word == null)
            {
                EditorWord editWord = m_WikiSwervice.GetEditorWord(id);
                if (editWord == null)
                    return RedirectToAction("CreateIndex");
                else if ((editWord.Visible != null) && !(bool)editWord.Visible)
                {
                    return RedirectToAction("NoApproved", new { id = id });
                }
            }
            else
            {
                word.Dir = word.Content.Catalog();
                word.Content = word.Content.UBB2Html().ReplaceContent("show");
                if (!Aqioo.Modules.Wiki.Utility.Common.IsHaveCookie(Aqioo.Modules.Wiki.Utility.Common.GetClientIP + "_view_" + id))
                {
                    m_WikiSwervice.UpdateViews(id);
                    word.Views = word.Views + 1;
                }
            }

            return word;
        }
View Code

 说明:这里通过actionName属性给action起了一个别名

 

posted on 2014-08-19 15:51  随心所意  阅读(185)  评论(0)    收藏  举报