我从开发人员处获取此脚本,将其放在我的网站上,以便动态更改电话号码。
<script runat="server">
public string getPhoneNumber()
{
string strPhone = "";
if (!(Session["Phone"] == null))
{
strPhone = Session["Phone"].ToString();
}
else
{
searchphone.GetPhone obj = new searchphone.GetPhone();
string strURL = HttpContext.Current.Request.Url.AbsolutePath;
if (Request.QueryString["s"] != null && Request.QueryString["P"] != null)
strPhone = obj.GetPhoneNumber(Request.QueryString["s"], Request.QueryString["p"]);
if (!string.IsNullOrEmpty(strPhone))
Session["Phone"] = strPhone;
else
strPhone = obj.GetPhoneNumber(strURL);
}
return strPhone;
}
</script>
逻辑位于dll文件中,并且还需要在每个页面上包含一个名称空间。代码工作正常。
但我的问题是他要求我手动将这个脚本放在每个页面上。当我放置脚本并在母版页上导入命名空间并希望在内容页面上使用getphonenumber方法(&lt;%= getPhoneNumber()%&gt;)来跟踪和更改基于用户的电话号码时,它也无法正常工作会话。
此代码的目标是跟踪用户并基于此显示电话号码。我希望在全局范围内包含此脚本,以便每个页面都可以访问它并使用其getphonenumber方法。感谢。
答案 0 :(得分:1)
执行此操作的一种方法是将此功能放在母版页上。然后访问您页面上的功能。
public string getPhoneNumber()
{
string strPhone = "";
if (!(Session["Phone"] == null))
{
strPhone = Session["Phone"].ToString();
}
else
{
searchphone.GetPhone obj = new searchphone.GetPhone();
string strURL = HttpContext.Current.Request.Url.AbsolutePath;
if (Request.QueryString["s"] != null && Request.QueryString["P"] != null)
strPhone = obj.GetPhoneNumber(Request.QueryString["s"], Request.QueryString["p"]);
if (!string.IsNullOrEmpty(strPhone))
Session["Phone"] = strPhone;
else
strPhone = obj.GetPhoneNumber(strURL);
}
return strPhone;
}
<%= ((MasterPageType)this.Master).getPhoneNumber() %>
其中MasterPageType
是主页的类型名称。
实现此目的的另一种方法是创建一个静态类(新文件):
public static class SessionTools
{
public static string getPhoneNumber()
{
string strPhone = "";
if (!(HttpContext.Current.Session["Phone"] == null))
{
strPhone = HttpContext.Current.Session["Phone"].ToString();
}
else
{
searchphone.GetPhone obj = new searchphone.GetPhone();
string strURL = HttpContext.Current.Request.Url.AbsolutePath;
if (HttpContext.Current.Request.QueryString["s"] != null && HttpContext.Current.Request.QueryString["P"] != null)
strPhone = obj.GetPhoneNumber(HttpContext.Current.Request.QueryString["s"], HttpContext.Current.Request.QueryString["p"]);
if (!string.IsNullOrEmpty(strPhone))
HttpContext.Current.Session["Phone"] = strPhone;
else
strPhone = obj.GetPhoneNumber(strURL);
}
return strPhone;
}
}
<%= SessionTools.getPhoneNumber() %>