2017-05-05 45 views
0

我一直在通过很多帖子来解决我的问题,出于某种原因,我尝试的解决方案都没有工作。 我只是试图从我的aspx.cs传递一个值(字符串)到我的aspx(html页面)。如何将aspx.cs中的值传递给aspx

这里是我的尝试: 我aspx.cs:

public enum httpVerb 
{ 
    GET, 
    POST, 
    PUT, 
    DELETE 
} 

public string endPoint { get; set; } 
public httpVerb httpMethod { get; set; } 

public string strResponseValue; 

public string ResponseREST { get { return strResponseValue; } } 
public string makeRequest() 
{ 
    strResponseValue = string.Empty; 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(endPoint); 

    request.Method = httpMethod.ToString(); 

    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) 
    { 
     if (response.StatusCode != HttpStatusCode.OK) 
     { 
      throw new ApplicationException("error code: " + response.StatusCode.ToString()); 
     } 
     //Process the response stream.. (could be JSON...) 
     using (Stream responseStream = response.GetResponseStream()) 
     { 
      if (responseStream != null) 
      { 
       using (StreamReader reader = new StreamReader(responseStream)) 
       { 
        strResponseValue = reader.ReadToEnd(); 
       }//End of StreamReader 
      } 

     }//end of using ResponseStream 

    }//End of response 

    return strResponseValue; 

} 

,这里是试验型动物我在ASPX那样: <div><%=ResponseREST%></div> <div><%=strResponseValue%></div> <div><%=makeRequest()%></div>

这是我的错误:

BC30451'ResponseREST'未被声明。由于其保护级别,它可能无法访问。

任何帮助将不胜感激。我对c#相当陌生,所以我可能会错过简单的东西。

谢谢

+0

你需要指定'get'和'set'值 – Webruster

+0

像这样? 'public string ResponseREST {get {return strResponseValue; } set {}}'。我试过这个,同样的错误:( – Phyziik

+0

@Phyziik你班上的访问修饰符是什么? – RH6

回答

0

我能够使它工作。你们提供的不同解决方案可以发挥作用。但只有在我添加该行后:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="LeafletHTML.aspx.cs" Inherits="LeafletHTML" %> 

谢谢大家的帮助!

0

您还需要指定一个设定值。

public partial class _Default : System.Web.UI.Page 
{ 
    string strResponseValue; 

    public string ResponseREST 
    { 
     get { return strResponseValue; } 
     set { strResponseValue = value; } 
    } 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     strResponseValue = "This is a test"; 
    } 
} 
0

既然你在C#相当新的,一个建议是不要在.aspx文件通过避免<%= ... %>尽可能混合C#代码和HTML。当代码库变得越来越大时,这通常是一个糟糕的主意,并导致许多混乱。

另一种方案是,无论你想展现ResponseREST

<asp:Literal ID="MyLiteral" runat="server"></asp:Literal> 

从后台代码(该aspx.cs文件)设置的值这样

使用 Literal服务器控件的标记
MyLiteral.Text = "text I want to see"; 
+0

我会尝试这个技术!我更喜欢这种方法,我正在使用!谢谢! – Phyziik

相关问题