无法在Asp.NET中调用c#中的javascript函数

时间:2016-10-14 08:05:25

标签: javascript c# asp.net .net

本网站已多次讨论此问题,但我找不到解决问题的方法。

我已执行以下步骤。

1。创建了一个JS函数。

 function showModal() {
            alert("called");
       }

2。在.aspx文件中添加了一个脚本管理器

 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

第3。在.cs文件中创建了一个方法

 [System.Web.Services.WebMethod()]
        [System.Web.Script.Services.ScriptMethod()] 
        protected void register_user(object sender, EventArgs e)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);
            log.Debug("register_user is called");


        }

但它没有调用JS函数。

5 个答案:

答案 0 :(得分:0)

可能是因为,你还没有关闭你的javascript函数:

function showModal() {
            alert("called");
}

或者你也可以试试这个:

替换你的这一行:

Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);

Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "showModal(); ", true); // correct

答案 1 :(得分:0)

你混合了这么多东西。

如果您想将Code Behind中的javascript添加到您的html中。这应该位于某个全球事件Page_LoadPreRender

Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "YourJavascriptCode", true);

如果要从AJAX调用中调用aspx中的方法,则应该返回响应

    [System.Web.Services.WebMethod()]
    [System.Web.Script.Services.ScriptMethod()] 
    public static string register_user(object sender, EventArgs e)
    {
         //you can return a class->Json
         return stuff;
    }

如果您想在客户端执行javascript,请单击按钮。我想你想要这个!

    YourButton.Attributes["onclick"]= "javaScriptFunction()";
    //if you want to not execute server side
    YourButton.Attributes["onclick"]= "javaScriptFunction(); return false";

这是将javascript函数添加到asp按钮的最简单方法。

<asp:Button ID="RegisterBtn" runat="server" Text="Register"  OnClientClick="showModal()" onclick="register_user"/>

答案 2 :(得分:0)

首先,我不认为从aspx.cs调用Js函数是个好主意。

无论如何,从您的代码段开始,只需更改为:

Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "showModal()", true);

请注意第3个参数:"showModal()"

而且,你的JS函数“showModal()”,单击此按钮是否可以正常工作? <input type="button" value="Submit" onclick="showModal();"/>

答案 3 :(得分:0)

对我有用的是:

而不是 -

input[name="name"]

我添加了 -

Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);

并且有效。

答案 4 :(得分:0)

添加名称空间

使用System.Web.UI;

替换你的这一行:

Page.ClientScript.RegisterStartupScript(this.GetType(),“showModal”,“javascript:showModal();”,true);

ScriptManager.RegisterStartupScript(this,this.GetType(),“Message”,“showModal();”,true);

一切正常