0

可能重复:
如何将变量从 c# 传递到 javascript?

我有一个在登录期间验证用户凭据的 C# 方法。

public string CreateLoginjson(string strErrorType, bool blIsAuthenticated)
{
    StringBuilder sbLoginJson = new StringBuilder();
    if (blIsAuthenticated)
    {
        sbLoginJson.Append("{LoginSuccess:1");
    }
    else
    {
        sbLoginJson.Append("{LoginSuccess:0");
    }

    if (strErrorType != string.Empty)
    {
        if (strErrorType.TrimEnd(new char[] { ',' }) == "Token")
        {
            sbLoginJson.Append(",txtTestTokenNumber1:\"Error\"");
            sbLoginJson.Append(",txtTestTokenNumber2:\"Error\"");
            sbLoginJson.Append(",txtTestTokenNumber3:\"Error\"");
            sbLoginJson.Append(",txtTestTokenNumber4:\"Error\"");

        }
        else if (strErrorType.TrimEnd(new char[] { ',' }) == "Password")
        {
            sbLoginJson.Append(",txtPassword:\"Error\"");

        }
        else if (strErrorType.TrimEnd(new char[] { ',' }) == "UserName")
        {
            sbLoginJson.Append(",UserName:\"Error\"");

        }

    }
    sbLoginJson.Append("}");

    return sbLoginJson.ToString();


}

我现在必须将字符串 sbLoginJson 传递给 Javascript 函数,该函数检查用户是否未能提供登录详细信息。

Java Script Function,到目前为止我已经写过。

function GetLoginJson(strLoginJson) {
    if (strLoginJson != "" && strLoginJson != undefined) {
        var objLoginJson = eval('"+strLoginJson+"');
    }
    if(objLoginJson.sbLoginJson())
    {

    }
    else
    {

    }
}

有人可以告诉我如何传递字符串并使其工作吗?提前致谢

4

4 回答 4

2

创建一个受保护的属性并将其设置在代码中的某个位置:

protected string LoginJson { get; set; }

然后像这样使用它:

var strLoginJson = '<% =LoginJson %>';

您也可以直接调用您的公共方法,但是,考虑到您的方法与身份验证有关,我不建议这样做:

var strLoginJson = '<% = CreateLoginjson(a, b) %>';
于 2012-08-17T10:41:25.137 回答
0

你可以使用jquery。
单击登录时,您可以发出 ajax 请求并调用 CreateLoginjson() 方法并使用返回的字符串并传递给另一个 javascript 函数。

您调用的 C# 方法必须是公共的,并且应该使用 [WebMethod]

您可以在 jquery-ajax 请求的成功功能中执行此操作,例如..

$.ajax(
 {
   //other options, url,data etc.
   success: function(response) {
     GetLoginJson(response.d); // d holds your returned string.
   }
 }
);

谢谢

于 2012-08-24T05:24:57.977 回答
0

将您的字符串放在标签中并设置这些属性(Enabled="false" style="display: none;")。您可以在javascript中访问标签内容,并在函数执行后,从代码中调用javascript函数。请参阅下面的链接。

注册启动脚本从服务端执行 Javascript

于 2012-08-17T10:51:10.970 回答
0

将字符串放入 ViewData

于 2012-08-17T10:56:21.330 回答