您现在的位置是:首页 >

如何添加自定义排序 为BlogEngine的分类增加自定义Url别名功能

火烧 2021-07-27 16:24:13 1079
为BlogE gi e的分类增加自定义Url别名功能 这次为BlogE gi e的分类增加了自定义Url别名功能 修改教程:木子原创 category url lug a x有疑问请留言 谢谢 修改代
如何添加自定义排序 为BlogEngine的分类增加自定义Url别名功能

为BlogEngine的分类增加自定义Url别名功能  

这次为BlogEngine的分类增加了自定义Url别名功能      修改教程:木子原创    category url slug aspx有疑问请留言 谢谢            修改代码      BlogEngine Core Category cs      在 行    private string _Title;    /// <summary>    /// Gets or sets the Title or the object    /// </summary>    public string Title    {    get { return _Title; }    set    {    if (_Title != value) MarkChanged( Title );    _Title = value;    }    }   后添加    private string _Slug;    /// <summary>    /// Gets or sets the Slug or the object    /// </summary>    public string Slug    {    get { return _Slug; }    set    {    if (_Slug != value) MarkChanged( Slug );    _Slug = value;    }    }    public Category(string title string description string slug)    {    this Id = Guid NewGuid();    this _Title = title;    this _Description = description;    this _Slug = slug;    this Parent = null;    }   修改BlogEngine Core Providers Categories cs的   public override void InsertCategory(Category category)   public override void UpdateCategory(Category category)   public override void DeleteCategory(Category category)这些方法中作相应的修改    foreach (Category cat in categories)    {    writer WriteStartElement( category );    writer WriteAttributeString( id cat Id ToString());    writer WriteAttributeString( description cat Description);    writer WriteAttributeString( parent cat Parent ToString());    writer WriteAttributeString( slug cat Slug ToString());//新增加的Url别名    writer WriteValue(cat Title);    writer WriteEndElement();    cat MarkOld();    }         修改public override List<Category> FillCategories()方法   在   category Id = new Guid(node Attributes[ id ] InnerText);   category Title = node InnerText;   后添加   if (node Attributes[ slug ] != null)    category Slug = node Attributes[ slug ] InnerText;   else    category Slug = string Empty;      修改BlogEngine Core Web HttpModules UrlRewrite cs中的private static void RewriteCategory(HttpContext context string url)    private static void RewriteCategory(HttpContext context string url)    {    string title = ExtractTitle(context url);    foreach (Category cat in Category Categories)    {    //string legalTitle = Utils RemoveIllegalCharacters(cat Title) ToLowerInvariant();    string legalTitle = Utils RemoveIllegalCharacters(cat Slug) ToLowerInvariant();    if (title Equals(legalTitle StringComparison OrdinalIgnoreCase))    {    context RewritePath(Utils RelativeWebRoot + default aspx?id= + cat Id ToString() + GetQueryString(context) false);    break;    }    }    }      修改BlogEngine Web/App_Code/Controls/CategoryList cs中private HtmlGenericControl BindCategories()这个方法    行开始    HtmlAnchor anc = new HtmlAnchor();    //anc HRef = Utils RelativeWebRoot + category/ + Utils RemoveIllegalCharacters(key) + BlogSettings Instance FileExtension;    anc HRef = Utils RelativeWebRoot + category/ + Utils RemoveIllegalCharacters(GetSlug(new Guid(dic[key] ToString()))) + BlogSettings Instance FileExtension;    anc InnerHtml = HttpUtility HtmlEncode(key) + postCount;    anc Title = Category: + key;      修改BlogEngine Web/admin/pages/Categories aspx   在 <asp:TextBox runat= Server ID= txtNewCategory Width= /><br /> 后添加    <asp:Label ID= lblNewSlug runat= server AssociatedControlID= txtNewSlug Text= Slug /><br />    <asp:TextBox runat= Server ID= txtNewSlug Width= /><br />         在    <asp:TemplateField HeaderText= <%$ Resources:labels name %> >    <ItemTemplate>    <%# Server HtmlEncode(Eval( title ) ToString()) %>    </ItemTemplate>    <EditItemTemplate>    <asp:TextBox runat= server ID= txtTitle Text= <%# Eval( title ) %> />    </EditItemTemplate>    </asp:TemplateField>    后添加    <asp:TemplateField HeaderText= Slug >    <ItemTemplate>    <%# Server HtmlEncode(Eval( slug ) ToString())%>    </ItemTemplate>    <EditItemTemplate>    <asp:TextBox runat= server ID= txtSlug Text= <%# Eval( slug ) %> />    </EditItemTemplate>    </asp:TemplateField>      修改BlogEngine Web/admin/pages/Categories aspx cs中 void btnAdd_Click(object sender EventArgs e)这个方法   将Category cat = new Category(txtNewCategory Text description);改成   string slug = txtNewSlug Text;    if (slug Length > )    slug = slug Substring( );   Category cat = new Category(txtNewCategory Text description slug);      修改 void grid_RowUpdating(object sender GridViewUpdateEventArgs e)方法          Guid id = (Guid)grid DataKeys[e RowIndex] Value;    TextBox textboxTitle = (TextBox)grid Rows[e RowIndex] FindControl( txtTitle );    TextBox textboxSlug = (TextBox)grid Rows[e RowIndex] FindControl( txtSlug );//新增加的    TextBox textboxDescription = (TextBox)grid Rows[e RowIndex] FindControl( txtDescription );    DropDownList ddlParent = (DropDownList)grid Rows[e RowIndex] FindControl( ddlParent );    Category cat = Category GetCategory(id);    cat Title = textboxTitle Text;    cat Slug = textboxSlug Text;//新增加的    cat Description = textboxDescription Text;    if (ddlParent SelectedValue == )    cat Parent = null;    else    cat Parent = new Guid(ddlParent SelectedValue);    cat Save();       Response Redirect(Request RawUrl);      到这里就修改完成了 改的东西有点多 比较烦 因为我打算对BlogEngine进行比较多的修改 所以暂时不提供修改的文件下载 等感觉改得差不多了再提供下载 lishixinzhi/Article/program/net/201311/13495  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码