-3

ここに私の簡単なサンプルコードは次のとおりです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace PopUpFromCsFile
{
    public class PopUpWindow
    {
        public void PopUpFromCsFile()
        {
         string str1 = "<script> $.ajax({" +
                     "type: 'GET'," +
                      "url: 'Service/Class1.cs/callfromjs'," +
                        "data: '{}'," + "success: function () { getDetails(); } " +
                        "});</script>";

        page.ClientScript.RegisterStartupScript(this.GetType(), "script1", str1);

        }
        [WebMetod]
        public string  CallFromJs()
        {
            return "santosh";
        }

      public void getDetails()
       {
        string str = "<script>alert('Hai');</script>";
        System.Web.UI.Page page = (System.Web.UI.Page)HttpContext.Current.Handler;
        page.ClientScript.RegisterStartupScript(this.GetType(), "script2", str);
       }
    }
}

説明

PopUpFromCsFile() では、Ajax+WebMethod のコードを記述しました。Url パスは正しいですか?ここでは、スクリプトから getDetails() を呼び出すことができません。

4

1 に答える 1

2

できません。A.csは C# ソース コード ファイルであり、(どの言語からでも) そのまま使用することはできません。DLL にコンパイルする必要があります。

そして一度実行すると、JavaScript から DLL と通信できなくなります。JavaScript はブラウザにサンドボックス化されています。ネイティブ DLL とやり取りするためのブラウザー拡張機能を作成 (およびすべてのクライアント PC にインストール) する必要があります。

C# コードを JavaScript として書き直す必要があります。

于 2012-05-22T04:45:01.393 に答える