asp.net 前后台数据交互方式(转)

https://blog.csdn.net/luckyrass/article/details/38758007

一、前台直接输出后台传递的数据
后台代码:

// .aspx.cs
public string value = string.Empty;
public StringBuilder list = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{
    value = "yes";
    list.Append("第一串文字<br />");
    list.Append("第二串文字<br />");
}

前台代码:

<!--.aspx-->
<div><%=value%></div>
<!--if else 写法-->
<div><%=(value== "yes" ? "是yes" : "不是yes")%></div>
<div><%=list.ToString()%></div>

也可以直接在js里获取

// .aspx
<script type="text/javascript">
var value = '<%=value%>';
// 获取Web.config里的domainurl
var domainurl = '<%= System.Web.Configuration.WebConfigurationManager.AppSettings["domainurl"] %>';
</script>

二、 前台传参,后台获取参数并返回值,前台可直接调用方法必须是静态方法
后台代码:

// // .aspx.cs
public static int getvalue(int value)
{
    return 555 * value;
}

前台代码:

<!--.aspx-->
<div><%=getvalue(2)%></div>

三、新建一个类,前台传参 类中方法获取参数并返回值,前台可直接调用方法必须是静态方法
后台代码:

// 比如indexController.cs类或者一般处理程序IndexController.ashx
public class IndexController
    public static string geturl(string apiName)
    {
        string url = "http://www.test.com/" + apiName;
        return url;
    }
}

前台代码:

<div><%=indexController.geturl("apiName")%></div>

四、ajax 和 WebMethod 传参
后台代码 :

// index.aspx.cs
[WebMethod]
public static string getValue(string value)
{
    return "Hello Ajax! " + value;
}

前台代码:

//  index.aspx
$(function () {
    $.ajax({
        type: "post", //要用post方式                 
        url: "indexWebForm.aspx/getValue",//方法所在页面和方法名
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify({ value: "Test" }),//json字符串
        async: false,//阻塞的异步就是同步
        beforeSend: function () {
            // do something.
            // 一般是禁用按钮等防止用户重复提交
            // $("#btnClick").attr({ disabled: "disabled" });
            // 或者是显示loading图片
        },
        success: function (data) {
            alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
            // 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string re= JSON.parse(data.d);
            // 有时候需要嵌套调用ajax请求,也是可以的
        },
        complete: function () {
            //do something.
            // $("#btnClick").removeAttr("disabled");
            // 隐藏loading图片
        },
        error: function (data) {
            alert("error: " + data);
        }
    });
});
posted @ 2019-04-12 22:30  Mouer404  阅读(3105)  评论(0编辑  收藏  举报