[英]Displaying C# variable on ASP.NET webpage
我正在ASP.NET中设计一个网站,并将Steam API集成到其中。 我正在使用DotNetOpenAuth进行身份验证。 我对如何访问和显示变量responseURI
(第22行)感到困惑。 每当我尝试使用此方法在网页上显示变量时:
<p><%=responseURI%></p>
我收到一条消息,指出:
名称“ responseURI”在当前上下文中不存在。
这是我的C#
using DotNetOpenAuth.OpenId.RelyingParty;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class loginPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var openid = new OpenIdRelyingParty();
var response = openid.GetResponse();
if (response != null)
{
switch (response.Status)
{
case AuthenticationStatus.Authenticated:
// do success
var responseURI = response.ClaimedIdentifier.ToString();
break;
case AuthenticationStatus.Canceled:
case AuthenticationStatus.Failed:
// do fail
break;
}
}
else
{
using (OpenIdRelyingParty openidd = new OpenIdRelyingParty())
{
IAuthenticationRequest request = openidd.CreateRequest("http://steamcommunity.com/openid");
request.RedirectToProvider();
}
}
}
}
因为它在页面的上下文中不存在,所以仅在该switch
条件的上下文中。 Page
是类,只需使其成为类级别的值即可。 (我认为可见性至少需要protected
,因为显示的页面是从代码隐藏页面“继承”的。)
protected string ResponseURI { get; set; }
它将像C#中的任何其他属性一样放在类级别。 例如:
protected string ResponseURI { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
//...
}
然后在您的代码中进行设置:
this.ResponseURI = response.ClaimedIdentifier.ToString();
并将其显示在页面上:
<%=ResponseURI%>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.