0

noty javascriptプラグインを使用して通知を作成するjavascript関数がありますが、

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

C# のビュー エンジンとして razor v2 を使用しており、mvc ではなく Web フォーム フレームが機能します。フォームを送信した後、上記の 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

フレームでポストバック後に実行されるスクリプトを追加するには、ScriptManager.RegisterStartupScriptまたはPage.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 に答える
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 に答える