.NET一般有哪几种传值方式?

我这个值在JS,后台代码都要用到,应该哪种方式?... 我这个值在JS,后台代码都要用到,应该哪种方式? 展开
 我来答
美图赏
2015-12-04 · 知道合伙人数码行家
美图赏
知道合伙人数码行家
采纳数:2638 获赞数:24292
毕业于河南大学电子信息科学与技术专业,学士学位,擅长计算机网络技术。

向TA提问 私信TA
展开全部
  1.querystring的方式:将需要的值直接写到链接的后面,这些内容将直接显示到地址栏中,在传递安全性要求不高的一个或多个值或者是结构简单的值就可以使用这样的方法。

  如: Response.Redirect( "target.aspx?param1=hello¶m2=hi ")

  在接收页面可以通过request的方式得到所传递的值: string str = Request.QueryString["param1"];

  2.cookie方式,使用cookie对象方式,cookie是放在客户端的

  设置Cookie: HttpCookie cookie_name = new HttpCookie("name");

  cookie_name.Value = Label1.Text;

  Reponse.AppendCookie(cookie_name);

  获取Cookie:

  string name= Request.Cookie["name"].Value.ToString();

  3.session变量,session是放置于服务器端的

  设置Session: Session["name"] ="hello";

  获取Session: string name = Session["name"].ToString();

  4.使用Application 对象变量

  Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。

  设置Application : Application["name"] = ="hello";

  获取Application : string name = Application["name"].ToString();

  5. PostBackUrl()方法

  default.aspx页面:

  Code

  1 <asp:Button ID="Button1" Runat="server" Text="PostToAnotherPage" PostBackUrl="~/Default2.aspx" />

  2

  default2.aspx页面:

  Code

  1 if (PreviousPage != null)

  2 {

  3 TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1");

  4 Response.write(textBox1.Text );

  5 }、

  6.用Server.Transfer方法

  这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。下面这个代码是展示在需要很多个参数的时候,使用的方法,如果参数比较少就没必要使用这个方法了.

  如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作!

  1、先定义一个类,用该类放置所有查询参数:

  Code

  /**//// <summary>

  /// QueryParams 的摘要说明

  /// </summary>

  public class QueryParams

  {

  private string firstName;

  private string lastname;

  private int age;

  public string Firstname

  {

  get { return this.firstname; }

  set { this.firstname = value; }

  }

  public string LastName

  {

  get { return this.lastname; }

  set { this.lastname = value; }

  }

  public string Age

  {

  get { return this.age; }

  set { this.age = value; }

  }

  }

  2、接口定义:

  Code

  /**//// <summary >

  /// 定义查询接口。

  /// </summary >

  public interface IQueryParams

  {

  /**//// <summary >

  /// 参数

  /// </summary >

  QueryParams Parameters { get;}

  }

  3、查询页面继承IQueryParams接口(QueryPage.aspx):

  QueryPage.aspx

  Code

  <form id="form1" runat="server">

  <div>

  <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>

  <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>

  <asp:TextBox ID="txtAge" runat="server"></asp:TextBox>

  <asp:Button ID="btnEnter" runat="server" Text="Button" OnClick="btnEnter_Click" /></div>

  </form>

  QueryPage.aspx.cs

  Code

  public partial class QueryPage : System.Web.UI.Page, IQueryParams

  {

  private QueryParams queryParams;

  public QueryParams Parameters

  {

  get

  {

  return queryParams;

  }

  }

  public void btnEnter_Click(object sender, System.EventArgs e)

  {

  //赋值

  queryParams = new QueryParams();

  queryParams.FirstnName = this.txtFirstName.Text;

  queryParams.Lastname = this.txtLastName.Text;

  queryParams.Age = this.txtAge.Text;

  Server.Transfer( "ResultPage.aspx ");

  }

  protected void Page_Load(object sender, EventArgs e)

  { }

  }

  4、接收页面(ResultPage.aspx):

  ResultPage.aspx.cs

  public partial class ResultPage : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  QueryParams queryParams = new QueryParams();

  IQueryParams queryInterface;

  //实现该接口的页面

  if (Context.Handler is IQueryParams)

  {

  queryInterface = (IQueryParams)Context.Handler;

  queryParams = queryInterface.Parameters;

  }

  Response.Write("FirstName: ");

  Response.Write(queryParams.FirstName);

  Response.Write(" <br/ >Lastname: ");

  Response.Write(queryParams.LastName);

  Response.Write(" <br/ >Age: ");

  Response.Write(queryParams.Age);

  }

  }
上海华然企业咨询
2024-10-21 广告
上海华然企业咨询有限公司专注于AI与数据合规咨询服务。我们的核心团队来自头部互联网企业、红圈律所和专业安全服务机构。凭借深刻的AI产品理解、上百个AI产品的合规咨询和算法备案经验,为客户提供专业的算法备案、AI安全评估、数据出境等合规服务,... 点击进入详情页
本回答由上海华然企业咨询提供
huaaixue
2011-08-31 · TA获得超过524个赞
知道小有建树答主
回答量:1070
采纳率:0%
帮助的人:452万
展开全部
把你要传递的值附加到地址栏上,然后到后台用request获取
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-31
展开全部
.Net传值方式主要有以下几种:
1,url传值,如:

CheckPwd.aspx?user=uservalue&pwd=pwdvalue

2,Session传值

如:Session("role")="Administrator"

3,Viewstate("role")="Administrator" ,用法和Session大致相同

4,Context传值

如:页面1.aspx有一个TextBox1.Text,一个Button1,一个function test()

Context.Items.Add("value",TextBox1.Text)

Server.Transfer("2.aspx",True) '如果为FALSE,2.aspx将取不到1.aspx中的值

在页面2.aspx中,提取需要的值

Dim str as string=Context.Items("value").tostring;

或 str=Request.From("TextBox1")

但是:str=Request.QeuryString("TextBox1")取不到值,想一想为什么???

还可以调用1.aspx的属性和方法:
Dim 11 as i=Ctype(Context.Handle,1)
11.test()
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑州男科
2011-08-31 · TA获得超过701个赞
知道小有建树答主
回答量:1287
采纳率:0%
帮助的人:783万
展开全部
session
窗体传值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
封魔闪神的宣告
2011-08-31 · TA获得超过759个赞
知道小有建树答主
回答量:877
采纳率:0%
帮助的人:685万
展开全部
可以的话就Ajax,安全,不方便
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式