3

我继承了一个 Web 应用程序,我需要将客户端 ajax 帖子转换为服务器端 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;

      //              }
4

3 回答 3

7

Ajax 调用只是 HTTP 请求的一种特殊情况,在 .net 中没有开箱即用的具体方法,所以您的问题是关于如何在 .net 中发出 HTTP 请求,有多种方法:

使用 C#或使用WebApi发出和接收 HTTP 请求,这是 IMO 最简单的方法。

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

但是看起来您需要一些稍微不同的东西,看起来您的页面只是将数据发布到默认页面然后重定向到该页面,这可以通过简单的表单提交来完成

于 2013-09-19T18:56:30.653 回答
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();
于 2013-09-19T18:58:44.307 回答
5

使用服务器端的 WebAPI(如果您想在 IIS 下托管,则使用 ASP.Net MVC4 控制器;WebAPI 自托管在单独的独立应用程序下也是可能的)和客户端的 HttpClient 使这变得容易得多。

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

于 2013-09-19T19:02:07.900 回答