使用URL路径从数据库生成页面标题和元标记



我想通过从数据库中获取名称来动态更改title标记。这个内部数据库的名称和ID已经在同一个表中了,但我遇到了问题。

我想做的是从Url路径获取QRLinkCode,然后返回与该QRLinkCode关联的Name,以填充视图源中的标题元标记。

这是我迄今为止所写的。

public class PageMetaDetails
{
public static string UpdateMetaDetails (string urlpath)
{
//--- StringBuilder object to store MetaTags information.
StringBuilder sbMetaTags = new StringBuilder();

//--Step1 Get data from database.

using (TemplateDBEntities db = new TemplateDBEntities())
{

var qrLinkName = "";


if (urlpath.StartsWith("/ItemList"))
{
//get qrLink code out of the url
var qrLinkId = urlpath.Substring(urlpath.Length - 6);


//hit the database for this qr link by id
var qrLink = db.QRLinks.FirstOrDefault(x => x.QRLinkCode == qrLinkId);
qrLinkName = qrLink.Name;



}


//---- Step2 In this step we will add <title> tag to our StringBuilder Object.
//sbMetaTags.Append(qrLinkName);
//sbMetaTags.Append(Environment.NewLine);


return qrLinkName;
}


}


} 

有一些代码会介于两者之间,这就是为什么它不存在是额外的{},但我只想先让这部分工作。

我在Layout.cshtml中也有这样的内容,用于将名称路由到title元标记。

<title>
@{string title = Url.RequestContext.RouteData.Values["controller"] + "/" + Url.RequestContext.RouteData.Values["action"];
@(Html.Raw(Models.PageMetaDetails.UpdateMetaDetails(title)));} </title>

出于某种原因,它不会返回与ID相关的名称。如果有人知道我错在哪里,请告诉我。

好的,显然url路径字符串有问题,所以我更正了我的输入。


if (HttpContext.Current.Request.Url.AbsolutePath.StartsWith("/ItemList"))
{
//get qrLink code out of the url
//var qrLinkId = urlpath.Substring(urlpath.Length - 6);

var qrLinkId = HttpContext.Current.Request.Url.AbsolutePath.Substring(HttpContext.Current.Request.Url.AbsolutePath.Length - 6);

//hit the database for this qr link by id
var qrLink = db.QRLinks.FirstOrDefault(x => x.QRLinkCode == qrLinkId);
qrLinkName = qrLink.Name;
// var orgId = qrLink.FKId;

}

这允许返回与url子串中的QR码相关联的标题。

相关内容

最新更新