0

我有 javascript 函数,它使用 noty javascript 插件创建通知,

    <script type="text/javascript">
    function generateAnoty(message) {
        var noty_id = noty({
            layout: 'center',
            text: message,
            modal: true,
            type: 'success',
        });
    }
    </script>

我使用 razor v2 作为带有 C# 的视图引擎和 web 表单框架,而不是 mvc。提交表单后,我想调用上面的 javascript 函数。这是我正在尝试做的一个例子;

   //place for c#
   if (IsPost)
   {
       //after submitting the form
       //I wanna somehow call the js to show noty message
       generateAnoty("You have successfully submitted the form!")
   }

ps 如果我尝试使用任何 html 按钮 onclick 事件处理程序调用 generateAnoty(message) js 方法,它运行良好。

4

2 回答 2

0

根据您提交表单的方式,您可以执行此操作..

@using (Ajax.BeginForm("Results", new AjaxOptions { UpdateTargetId="Results", OnBegin="ShowLoading", OnComplete="generateAnoty", OnFailure="Error" }))
{
   // Code here
}

注意:您必须根据表单上的内容替换某些事物的名称。在这个例子中,我有一个显示加载图像 OnBegin 和 OnComplete 的函数,你可以让它消失,或者显示消息,无论你想要什么。只需更换您需要的东西,它应该可以解决。

于 2013-02-07T22:02:36.400 回答
0

要在框架中添加回发后运行的脚本,您可以使用ScriptManager.RegisterStartupScriptPage.ClientScriptManager.RegisterStartupScript方法。

如果ScriptManager.RegisterStartupScript框架内的 Web 表单使用 UpdatePanel 则使用,否则使用Page.ClientScriptManager.RegisterStartupScript方法。

作为 RegisterStartupScript 的一种统一解决方案,您可以使用以下扩展方法:

public static void RegisterStartupScript(this Page page, string scriptText)
{
    var scriptManager = ScriptManager.GetCurrent(page);
    if (scriptManager != null && scriptManager.IsInAsyncPostBack)
        ScriptManager.RegisterStartupScript(page, page.GetType(), Guid.NewGuid().ToString(), scriptText, true);
    else
        page.ClientScript.RegisterStartupScript(page.GetType(), Guid.NewGuid().ToString(), scriptText, true);
}
于 2013-02-08T10:26:51.817 回答