在C#中等效的Ajax帖子

时间:2013-09-19 18:52:36

标签: c# asp.net ajax

我继承了一个Web应用程序,我需要将客户端ajax post转换为服务器端asp.net代码(C#)。我不知道最好的方法是什么才能实现这一点,我对ajax帖子很新,但这段代码似乎是将信息发布到同一个项目中的一个页面,所以我假设有一个更简单的方法来完成这个服务器端只是想让某人确认我并不疯狂......

代码

 $.ajax({
      //  type: "POST",
      //  url: '<%= ResolveUrl("~/default.aspx") %>/Login',
      //      data: parameters,
      //      contentType: "application/json; charset=utf-8",
      //      dataType: "json",
      //      success: function (msg) {

      //          if (msg.d == "success") {
      //              $.modal.autoResize = false;
      //              ResizeModal();
      //              var redirectUrl = $('#<%= btnSubmit.ClientID %>').attr('data-redirecturl');









      //              if (redirectUrl != null && redirectUrl.length > 0) {

      //                  window.location = redirectUrl;

      //              }

3 个答案:

答案 0 :(得分:7)

Ajax调用只是HTTP请求的一个特例,在.net中没有明确的开箱即用方式,所以你的问题是关于如何在.net中发出HTTP请求,有多种方法:

Making and receiving an HTTP request in C# 或使用WebApi,这是IMO最简单的方法。

我建议使用Chrome开发工具捕获确切的HTTP请求,然后Fiddler为服务器端执行相同操作并对其进行比较,以确保它们相似。

但是看起来你需要稍微不同的东西,看起来你的页面只是将数据发布到默认页面然后重定向到那个页面,这可以通过一个简单的form submit <来完成/ p>

答案 1 :(得分:6)

您可以使用HttpWebRequest。它会是这样的:

var httpWebRequest = (HttpWebRequest)WebRequest.Create( ResolveUrl("~/default.aspx"));
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
string json = .... //Constrtuct your json here
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    streamWriter.Write(json);
}
var response = httpWebRequest.GetResponse();

答案 2 :(得分:5)

使用WebAPI在服务器端(ASP.Net MVC4控制器,如果你想在IIS下托管; WebAPI自托管在一个独立的独立应用程序下也可以)和客户端的HttpClient,这已经变得容易了。

http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from-a-net-client