c# - 如何将 Javascript 注册到 CS 文件?

标签 c# javascript asp.net json

我有一个 aspx.cs 页面,其中有一个方法需要注册 Javascript 文件和一个方法。有人可以指导我如何在其中注册 JS 文件和方法。

aspx.cs

protected void Page_PreRender(object sender, EventArgs e)
{
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
        "TaskControlJSON", "<script language='javascript' 
        type='text/javascript'>" + objLoginJson + "</script>"
        , false);
}

需要注册到cs文件的Javascript文件。

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

    }
    else if (objLoginJson.LoginSuccess == "0") {

        if (objLoginJson.txtUserName != '' && objLoginJson.txtUserName != '') 
        {
            $('#txtUserName').attr("class", objLoginJson.txtUserName);
        }
        if (objLoginJson.txtPassword != '' && objLoginJson.txtPassword != '') 
        {
            $('#txtPassword').attr("class", objLoginJson.txtPassword);
        }
        if (objLoginJson.txtTestTokenNumber1 != '' 
             && objLoginJson.txtTestTokenNumber1 != '') 
        {
            $('#txtTestTokenNumber1').attr("class"
               , objLoginJson.txtTestTokenNumber1);
        }
        if (objLoginJson.txtTestTokenNumber2 != '' 
             && objLoginJson.txtTestTokenNumber2 != '') 
        {
            $('#txtTestTokenNumber2').attr("class",
               objLoginJson.txtTestTokenNumber2);
        }
        if (objLoginJson.txtTestTokenNumber3 != '' 
            && objLoginJson.txtTestTokenNumber3 != '') 
        {
            $('#txtTestTokenNumber3').attr("class", 
               objLoginJson.txtTestTokenNumber3);
        }
        if (objLoginJson.txtTestTokenNumber4 != '' 
             && objLoginJson.txtTestTokenNumber4 != '') 
        {
            $('#txtTestTokenNumber4').attr("class",
                objLoginJson.txtTestTokenNumber4);
        }
    }
    return objLoginJson;
}

如果用户提供的登录凭据不正确,此方法将返回一个 Json 字符串。 提前致谢。

最佳答案

由于您有相当大的 javascript 代码块,因此最好将其保存在单独的 js 文件中。

您可以使用 ScriptManager.RegisterClientScriptInclude实现这一目标的方法。

ScriptManager.RegisterClientScriptInclude(
            this,
            typeof(Page),
            "LoginScript",
            ResolveClientUrl("~/scripts/login.js"));

你还没有说明你将如何使用你的js函数GetLoginJson,所以我只是提供一个引用。您的 js 文件可以通过这样的方式调用它:

$(document).ready(function(){
    $("#loginButton").click(function(){
       var strLoginJson = "";//form the string as you need
       GetLoginJson(strLoginJson);
    });
});

关于c# - 如何将 Javascript 注册到 CS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12066486/

相关文章:

c# - 是否可以对在 C# 中运行时创建的类型使用隐式强制转换?

c# - 限制正则​​表达式的长度

javascript - 在 map 上添加标记并将点值捕获到 django 表单? Ajax /Geodjango

asp.net - 如何在 ASP.NET 中实现 PayPal Express Checkout?

asp.net - 为什么在asp.net中sql查询前要写@?

c# - Json.NET - ContractResolver 使用非原始键序列化字典

javascript - Accordion 是如何工作的?

javascript - ExtJS 4.1 - 饼图刷新

c# - 回发后,我的 JavaScript 函数在 ASP.NET 中不起作用

c# - Html.HiddenFor 绑定(bind)到错误的元素