【发布时间】:2015-06-09 11:29:43
【问题描述】:
我正在创建一个 Web 应用程序。有一个默认页面,其中列出了问题。当用户单击将重定向到用户到问题文件夹中的 ViewQuestion 的问题时。在 default.aspx 页面上,我使用 datalist 控件显示问题标题。我正在为问题生成带有 id 的 url。这段代码如下。
protected void listQuestion_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lnkTitle = (LinkButton)e.Item.FindControl("lnkQuestion");
// lnkTitle.Style.Add("text-decoration", "none");
PostEntity Item = (PostEntity)e.Item.DataItem;
lnkTitle.PostBackUrl = GenerateURL(Item.Title, Item.Id);
}
}
public static string GenerateURL(string title, int Id)
{
string strTitle = title.Trim();
strTitle = strTitle.ToLower();
//strTitle = strTitle.Replace();
strTitle = strTitle.Replace(" ", "-");
strTitle = strTitle.Trim();
strTitle = strTitle.Trim('-');
strTitle = "~/Questions/ViewQuestion.aspx?QuestionID=" + Id.ToString().Trim() + "/" + strTitle + ".aspx";
return strTitle;
}
在 global.asax 中的代码是
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RegisterRoute(RouteTable.Routes);
}
static void RegisterRoute(RouteCollection route)
{
route.MapPageRoute("Default", "Default", "~/Default.aspx");
route.MapPageRoute("ViewQuestion", "Questions/ViewQuestion{QuestionID}", "~/Questions/ViewQuestion.aspx");
}
获取查询字符串的视图如下:
lblQustionText.Text = this.Page.RouteData.Values["QuestionID"].ToString() as string; // giving me object reference exception
我的pageurl是这样生成的
/Questions/ViewQuestion.aspx?QuestionID=1376/get-the-current-logged.aspx
如何为 SEO 友好的 url 制作这个示例。谢谢你的回答。
【问题讨论】:
-
@nadeem 如果您查看我使用了相同的方法。
-
那么发生了什么?你有没有遇到任何错误
-
@nadeem 这部分我得到错误'lblQustionText.Text = this.Page.RouteData.Values["QuestionID"].ToString() as string; // 给我对象引用异常 '
标签: c# asp.net url-rewriting seo