首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在c#中调用Asp.NET中的javascript函数

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

Stack Overflow用户
提问于 2016-10-14 08:05:25
回答 5查看 1.1K关注 0票数 1

这个问题在这个网站上已经讨论过很多次了,但是我没有找到解决问题的方法。

我执行了以下步骤。

1.创建了一个JS函数.

代码语言:javascript
运行
复制
 function showModal() {
            alert("called");
       }

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

代码语言:javascript
运行
复制
 <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

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

代码语言:javascript
运行
复制
 [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函数。

EN

回答 5

Stack Overflow用户

发布于 2016-10-14 08:12:35

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

代码语言:javascript
运行
复制
function showModal() {
            alert("called");
}

或者你也可以试试这个:

替换您的这一行:

代码语言:javascript
运行
复制
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "javascript:showModal(); ", true);

使用

代码语言:javascript
运行
复制
Page.ClientScript.RegisterStartupScript(this.GetType(), "Message", "showModal(); ", true); // correct
票数 0
EN

Stack Overflow用户

发布于 2016-10-14 08:15:14

你混合了这么多东西。

如果您想将代码后面的javascript添加到您的html中。这应该位于某些全局事件Page_LoadPreRender中。

代码语言:javascript
运行
复制
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "YourJavascriptCode", true);

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

代码语言:javascript
运行
复制
    [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,请单击按钮。我想你想要这个!

代码语言:javascript
运行
复制
    YourButton.Attributes["onclick"]= "javaScriptFunction()";
    //if you want to not execute server side
    YourButton.Attributes["onclick"]= "javaScriptFunction(); return false";

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

代码语言:javascript
运行
复制
<asp:Button ID="RegisterBtn" runat="server" Text="Register"  OnClientClick="showModal()" onclick="register_user"/>
票数 0
EN

Stack Overflow用户

发布于 2016-10-14 08:26:02

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

总之,从你的片段中,只需更改如下:

代码语言:javascript
运行
复制
Page.ClientScript.RegisterStartupScript(this.GetType(), "showModal", "showModal()", true);

注意第三个参数:"showModal()"

另外,您的JS函数"showModal()",它通过单击这个按钮工作吗?<input type="button" value="Submit" onclick="showModal();"/>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40038064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档