程序开发 > C# > 正文

asp.net前台调用后台方法(cs方法)与变量

亮术网 2020-08-16 本网原创

asp.net 虽然前台代码与后台代码分离了,但有时候还需要在前台(aspx文件)调用后台(cs文件)的方法或变量。例如,要把一个后台变量的值传给前台的 javascript 代码中的一个变量,就是 aspx 调用后台变量的情况;前台绑定数据要根据值的真假显示不同的值,就需要在后台写一个方法判断,根据值的真假返回不同的值,就是 aspx 调用cs方法的情况。

无论是 aspx 调用后台方法还是调用cs后台变量,跟前台绑定数据差别不大,都在这个符号 <%# %> 中编写代码。下面就先看如何在前台 apsx 调用后台cs变量,再讨论怎么调用后台方法。

 

一、aspx 调用后台变量

假如要把后台一个变量的值传递给前台 javascript 代码的一个变量,实现代码如下:

cs代码:

namespace testpro
  {
    public partial class TestEg : System.Web.UI.Page
    {
      protected string img = "";//传递到前台的变量

    protected void Page_Load(object sender, EventArgs e)
      {
        img = "/images/ads.jpg";
      }
    }
  }

 

前台 aspx 代码:

<script type="text/javascript">
    var img = "<% =img %>";
  </script>

从以上代码可以看出,需要在 aspx 调用的变量必须定义为保护成员(protected)或公用成员(public),否则前台无法取到后台变量的值。此外,赋值给 javascript 字符变量还要加上双引号,否则也无法赋值。

 

 

二、aspx 调用后台方法

假如前台绑定数据的时候,有一个值要根据真假显示不同的提示文字,在前台 aspx 中写代码比竟不怎么好,要把判断代码放到后台cs文件中,实现代码如下:

后台cs方法:

/// <summary>
  /// aspx 调用cs方法
  /// </summary>
  /// <param name="isTrue">前台传来的对象型变量</param>
  /// <returns>真:男;假:女</returns>

  protected string GetValue(object isTrue)
  {
    bool flag = Convert.ToBoolean(isTrue);
    if (flag)
      return "男";
    else
      return "女";
  }

 

前台 aspx 调用后台cs方法:

<div><%# GetValue(Eval("sex")) %></div>

后台 cs 文件中的方法也要定义为 protected 或 public,否则前台 aspx 文件也调用不到;另外,绑定的值 Eval("sex") 都是对象型,在 cs方法中需要转换为相应的类型。