[英]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.