如何在不使用MVC,WebForms概念的情况下通过jQuery Ajax调用c#类中的方法

时间:2016-09-28 04:47:18

标签: c# asp.net ajax webmethod

我需要使用属性[WebMethod]调用C#方法,它不应该使用MVC,WebForms,API。它应该是一个干净的c#类(.CS),HTML文件。

这是我的WebMethod

[WebMethod]
public string GetMessage()   // Home.CS 
{           
        return "GOGO";
}    

这是我的ajax代码:

<head> //HTML and Ajax 
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
 <script>
    function GetMessage() {
        $.get("/Home/GetMessage", function (data) {
            $("p").html(data);
        });
    }
 </script>
</head>
<body>
    <input type="button" onclick="GetMessage()" value="Get Message" />
    <p></p>
</body>

2 个答案:

答案 0 :(得分:2)

我知道这可能不是您正在寻找的答案。但是从我的问题来看,在我看来,你真的不知道什么是客户端 - 服务器架构,什么是服务器,什么是客户端。

我建议您了解这些图层,然后尝试为您的情况找到解决方案。

你问题的直接答案是“不可能”。但要明白为什么?您需要了解客户端 - 服务器系统的体系结构。你可以从这里开始 -

https://en.wikipedia.org/wiki/Client%E2%80%93server_model

IIS的特定链接 -

https://msdn.microsoft.com/en-us/library/ms178473.aspx

https://msdn.microsoft.com/en-us/library/bb470252.aspx

Asp.net页面生命周期 -

https://msdn.microsoft.com/en-us/library/ms178472.aspx

答案 1 :(得分:1)

我认为你需要一个.net webservice .Works就像你想要的那样..不是webform / MVC ..Let WebService1.asmx和HTMLPage1.htm 在同一个目录中。< / p>

确保取消注释[System.Web.Script.Services.ScriptService]行 的 WebService1.asmx

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

namespace StackOverflow_Solve.Services
{
    /// <summary>
    /// Summary description for WebService1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
        public string GetMessage()   // Home.CS 
        {
            //return "GOGO";
            Context.Response.Output.Write("Hello World");
            Context.Response.End();
            return string.Empty;
        } 
    }
}

HTMLPage1.htm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<head> //HTML and Ajax 
<title></title>

 <script>
     function GetMessage() {
         //Load jQuery($) to Use 
         $(function() {
             $.get("WebService1.asmx/GetMessage", function (data) {
                 console.log(data);
                 $("p").html(data);
             });
         });

     }
 </script>
</head>
<body>
    <input type="button" onclick="GetMessage()" value="Get Message" />
    <p></p>
</body>
</body>
</html>