将Javascript变量传递给C#函数aspx并从它返回到aspx页面

时间:2013-12-11 14:11:44

标签: c# javascript asp.net

如何将变量传递给c#函数? 假设:

<script>

    var myValue;

    function setValue(idriga) {
        myValue = idriga;
    }

    function getValue() {
        return myValue;
    }

</script>

这是一个设置和获取价值的脚本。如何在不调用aspx页面并传递参数的情况下将myValue值传递给ac#函数代码,但是从aspx传递到aspx.cs,从aspx.cs传递到aspx以显示从c#方法返回的值(示例搜索)值到db并返回其他值?)

我的函数c#是:

protected string SearchUserByGuid(Guid area) {
    return (from us in contextDB.AREAS
            where us.ID_AREAS == area
            select us.USER_NAME).Single();
}

2 个答案:

答案 0 :(得分:2)

我不确定我完全明白你的要求,但如果我这样做,那就

可以做的是使用AJAX从JavaScript调用服务器端方法。此服务器端方法可以是静态[WebMethod]或WebAPI方法(如果您使用ASP.NET MVC或者如果您有WebAPI项目)。

有关使用AJAX(和jQuery)调用WebMethods的更多信息:http://deebujacob.blogspot.be/2012/01/aspnet-ajax-web-method-call-using.html

有关Web API的更多信息:http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

答案 1 :(得分:1)

要将变量传递给WebMethod,您可以使用ajax。使用Jquery它会是这样的

$.ajax({
    type: "POST",
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    url: "YourPage.aspx/SearchUserByGuid",
    data:JSON.stringify({area: 'YourValueToPass'}),
    success: function (dt) { alert(dt);}, //all Ok
    error: function () { alert('error'); } // some error
});

您的WebMethod也将是公共静态的,因此请更改您的方法声明

[WebMethod]
public static string SearchUserByGuid(Guid area) {
    return (from us in contextDB.AREAS
        where us.ID_AREAS == area
        select us.USER_NAME).Single();
}