jquery - 向后面的代码发出 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
。
但是,formdata 中的值已正确提交。
但是,在$("#frmPicture").ajaxSubmit({});
使用 jquery.form 库之前,没有这样的问题。
普通的 ajax 帖子和 ajaxSubmit 有什么问题?使用 ajax 帖子将该值设置为默认值的原因可能是什么?什么是解决方法?
解决方案
推荐阅读
- asn.1 - 是否有 ASN.1 重新解析器/复合 ASN.1 显示工具?
- sql - SQLite: Get error when try to delete with alias name
- c# - DirectorySearcher 类超出范围异常
- ios - 指向特定应用构建的 Testflight 公共链接
- docker - docker daemon 的 ipvlan 访问
- excel - VBA代码扫描单元格中的逗号分隔值并检索查找值
- ios - 以编程方式添加 UITextFields
- angularjs - 无法在 AngularJS plunker 中运行 $http
- python - 使用 pandas 更新最大值的方法
- ruby - Start ElasticSearch in Wercker