向后台代码发出 ajax 请求时,属性值设置为默认值

问题描述

在我正在处理的 Web 应用程序中,有一个 ascx 用户控件,其代码隐藏具有以下代码实现。

public partial class Admin_Controls_PicturePicker : System.Web.UI.UserControl
{
    public string Root
    {
        get
        {
            return ResolveClientUrl("~/");
        }
    }
    public Relatedobject RelatedobjectType { get; set; }
    public int RelatedobjectId { get; set; }
    public string PictureListContainerId { get; set; }



    protected void Page_Load(object sender,EventArgs e)
    {
        if (Request.RequestType == "POST" && Request.Form["action"] == "savePicture")
        {
            SavePicture();
        }
    }
}

页面加载时,RelatedobjectId 被初始化为查询字符串参数。

在 ascx 中,我在按钮单击中完成了一个 ajax 帖子,该按钮将表单数据提交给代码隐藏。 ajax 实现是这样完成的:

var url = "/Admin/HotelDetails.aspx";
$.ajax({
    type: "POST",url: url,contentType: false,processData: false,data: formData,success: function (responseText) {
        if (responseText == "") {
            $("#divAddPictureDialog").dialog("close");
            reloadPictures();
        }
        else {
            $("#spnPictureStatus").html(responseText);
        }
    }
});

但是虽然没有任何页面重新加载,也没有刷新页面功能,但是当 ajax 发布完成时。 .cs 文件中的所有值都将被擦除。它们被设置为认值。即:RelatedobjectId 变为 0

但是,表单数据中的值已正确提交。

但是,在 $("#frmPicture").ajaxSubmit({}); 使用 jquery.form 库之前,没有这样的问题。

普通的 ajax 帖子和 ajaxSubmit 有什么问题?使用 ajax 帖子将值设置为认值的原因可能是什么?可能的解决方法是什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)