微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jQuery.ajax发送的空值绑定到模型中的“空”字段

如何解决jQuery.ajax发送的空值绑定到模型中的“空”字段

| 我希望页面的JavaScript可以访问模型的一部分,因此我将以下脚本标记包括在模型中:
<script type=\"text/javascript\">
var filter = @Html.Raw(@Json.Encode(Model.Filter));
</script>
filter
对象是用于后续查询的过滤器,这些查询通过AJAX完成:
<script type=\"text/javascript\">
function DownloadData() {
    $.ajax({
        url: \'@Url.Action(\"GetData\")\',type: \"POST\",data: filter,success: function (data) {
        }
    });
}
</script>
一切正常,但有一部分:
filter
的字符串属性不是properties4ѭ,而是
\"null\"
。我还没有触摸JavaScript中的
filter
变量 模型:
public class SellOffersFilter
{
    public int MinAge { get; set; }
    public string Country { get; set; }
    public string City { get; set; }
}
控制器:
public ActionResult SellOffersGetPage(SellOffersFilter filter)
{
    //here both filter.Country and filter.City are equal to \"null\"
}
POST形式类似于
MinAge=0&Country=null&City=null
,JavaScript调试器显示
filter.Country
等于
null
,而不是
\"null\"
字符串。 有没有一种方法可以强制jQuery将过滤器的字段不打包到POST请求中(如果它们是4)?还是通过
jQuery.ajax()
传递through4ѭ值的另一种简单方法?     

解决方法

这绝对是您应该在服务器上而不是在客户端上执行的操作。 使客户端错误地不使用\“ null \”并不意味着客户端不能使用空值进行请求。 整个AJAX概念缺乏适当的验证,人们将验证推向了客户端级别。错了这意味着将来会出现更多隐藏的服务器错误(供各种黑客利用)。     ,我没有弄清楚答案,所以我不得不在服务器上用空字符串手动替换空值。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。