1

我有一个用于封装一些功能的 aspx 页面。这些函数在页面加载时调用,并由通过 jQuery 添加到 POST 请求的字符串变量选择。

我的问题是,如果 POST 请求由于某种原因不包含所需的 ID 号等,我该如何返回错误代码?

同样,我想知道我是否做对了(我有一个需要能够从列表中添加和删除 ID 的表单,我正在通过从这个页面操作会话来做到这一点从 jQuery 调用)。

到目前为止我所拥有的:

调用页面:

    function addItem(code) {
        $("#SubtypeTextbox").load(
            "../../src/ajax/Subtype.aspx",
            {
                Action: "Add",
                SID: code
            }
        );
    }

而被调用页面的aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Scripts_ajax_Subtype : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.Form["Action"] == null)
        {
            Response.Clear();
            Response.StatusCode = 409;
            Response.TrySkipIisCustomErrors = true;
            Response.Write("<p class=\"Errors\">Action is required.</p>");
        }
        else if (Request.Form["SID"] == null)
        {
            Response.Clear();
            Response.StatusCode = 409;
            Response.TrySkipIisCustomErrors = true;
            Response.Write("<p class=\"Errors\">Subtype ID is required.</p>");
        }
        else
        {
            //Execute request
        }
    }
}
4

1 回答 1

1

我建议您调查 ASP.NET AJAX 页面方法。它们本质上是托管在 ASP.NET 页面内的 Web 服务,如下所示:

[WebMethod]
public static string GetDate()
{
    return DateTime.Now.ToString();
}

现在您可以通过 jQuery 调用 page 方法,如下所示:

$.ajax({
    type: "POST",
    url: "YourPage.aspx/GetDate",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        // Do something interesting here.
    }
});

注意:ASP.NET AJAX 页面方法必须是静态的并且没有类的实例,但是如果您正确地装饰页面方法Page,它们就无权访问该对象。HttpContext.Current.Session

最后,ASP.NET AJAX 页面方法对其响应进行 JSON 编码,因此您不会在页面方法中看到任何序列化代码,因为它是自动完成的。

于 2013-08-27T04:07:41.497 回答