为了账号安全,请及时绑定邮箱和手机立即绑定

如何从JavaScript调用C#函数?

/ 猿问

如何从JavaScript调用C#函数?

凤凰求蛊 2019-11-03 04:04:12

我想CsharpFunction从JavaScript 调用,在代码隐藏中使用C#函数。我尝试了下面的代码,但是无论JavaScript条件是True还是False,都CsharpFunction被调用了!


JavaScript代码:


if (Javascriptcondition > 0) {

   <%CsharpFunction();%>

}

后面的C#代码:


protected void CsharpFunction()

{

  // Notification.show();

}

如何从JavaScript调用C#函数?


查看完整描述

3 回答

?
catspeake

您可以使用Web方法和Ajax:


<script type="text/javascript">             //Default.aspx

   function DeleteKartItems() {     

         $.ajax({

         type: "POST",

         url: 'Default.aspx/DeleteItem',

         data: "",

         contentType: "application/json; charset=utf-8",

         dataType: "json",

         success: function (msg) {

             $("#divResult").html("success");

         },

         error: function (e) {

             $("#divResult").html("Something Wrong.");

         }

     });

   }

</script>


[WebMethod]                                 //Default.aspx.cs

public static void DeleteItem()

{

    //Your Logic

}



查看完整回答
反对 回复 2019-11-04
?
守着星空守着你

.CS File    

    namespace Csharp

    {

      public void CsharpFunction()

      {

        //Code;

      }

    }


    JS code:

    function JSFunction() {

            <%#ProjectName.Csharp.CsharpFunction()%> ;

    }

注意:在JS Function中,当调用您的CS页面函数时。。。



查看完整回答
反对 回复 2019-11-04
?
慕容4345310

现代方法是将ASP.NET Web API 2(服务器端)与jQuery Ajax(客户端)一起使用。


像页面方法和ASMX Web方法一样,Web API允许您在ASP.NET中编写C#代码,这实际上可以从浏览器或任何地方调用!


这是一个示例Web API控制器,它公开了API方法,这些方法允许客户端检索有关一种或所有产品的详细信息(在现实世界中,产品很可能是从数据库中加载的):


public class ProductsController : ApiController

{

    Product[] products = new Product[] 

    { 

        new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 }, 

        new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M }, 

        new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M } 

    };


    [Route("api/products")]

    [HttpGet]

    public IEnumerable<Product> GetAllProducts()

    {

        return products;

    }


    [Route("api/product/{id}")]

    [HttpGet]

    public IHttpActionResult GetProduct(int id)

    {

        var product = products.FirstOrDefault((p) => p.Id == id);

        if (product == null)

        {

            return NotFound();

        }

        return Ok(product);

    }

}

控制器使用以下示例模型类:


public class Product

{

    public int Id { get; set; }

    public string Name { get; set; }

    public string Category { get; set; }

    public decimal Price { get; set; }

}

示例jQuery Ajax调用以获取并迭代产品列表:


$(document).ready(function () {

    // Send an AJAX request

    $.getJSON("/api/products")

        .done(function (data) {

            // On success, 'data' contains a list of products.

            $.each(data, function (key, item) {

                // Add a list item for the product.

                $('<li>', { text: formatItem(item) }).appendTo($('#products'));

            });

        });

});

这不仅使您可以轻松创建现代的Web API,而且还可以使用ASP.NET Web API帮助页面和/或Swashbuckle使其真正专业化并对其进行文档化。


可以将Web API改装(添加)到现有的ASP.NET Web Forms项目中。在这种情况下,您将需要Application_Start在文件的方法中添加路由说明Global.asax:


RouteTable.Routes.MapHttpRoute(

    name: "DefaultApi",

    routeTemplate: "api/{controller}/{id}",

    defaults: new { id = System.Web.Http.RouteParameter.Optional }

);



查看完整回答
反对 回复 2019-11-04

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信