【问题标题】:How to pass value from aspx.cs to aspx如何将值从 aspx.cs 传递给 aspx
【发布时间】:2017-05-05 12:31:23
【问题描述】:

我已经浏览了很多帖子来解决我的问题,但由于某种原因,我尝试过的解决方案都没有奏效。 我只是想将值(字符串)从我的 aspx.cs 传递给我的 aspx(html 页面)。

这是我尝试过的: 我的 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# 还很陌生,所以我可能会遗漏一些简单的东西。

谢谢

【问题讨论】:

  • 您需要同时分配getset
  • 喜欢这个? public string ResponseREST { get { return strResponseValue; } set { } } 。我试过了,同样的错误:(
  • @Phyziik 你的类的访问修饰符是什么?

标签: c# html asp.net


【解决方案1】:

由于您是 C# 的新手,因此建议不要在 .aspx 文件中混合 C# 代码和 HTML,尽可能避免使用 <%= ... %>。这通常是一个坏主意,当代码库变得更大时会导致许多混乱。

另一种解决方案是在要显示ResponseREST 的标记中使用Literal 服务器控件

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

从代码隐藏(aspx.cs 文件)中设置这样的值

MyLiteral.Text = "text I want to see";

【讨论】:

  • 我会试试这个技术!我更喜欢这种方法而不是我使用的方法!谢谢!
【解决方案2】:

我能够让它工作。你们提供的不同解决方案奏效了。但只有在我添加了那行之后:

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

谢谢大家的帮助!

【讨论】:

    【解决方案3】:

    您还需要分配一个设定值。

    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";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-15
      • 1970-01-01
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 2012-02-10
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      相关资源
      最近更新 更多