我创建了一个搜索页面,它根据查询字符串参数中设置的参数搜索我的数据库。搜索页面效果很好,但是当我希望在其中添加越来越多的搜索参数时,我不希望 URL 被空白查询字符串填充。
假设我有一个包含 10 个搜索选项的表单,但只想指定 2 个,是否可以只将这 2 个发布到 URL 而不是全部 10 个?
如果您使用 JavaScript 发出请求,则可以执行此操作。您甚至不需要为此填写表格。这是一个使用 jQuery 作为 JavaScript 的简单示例(为了简化事情):
@{
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="~/Scripts/jquery-1.9.1.min.js"></script>
<script>
$(function () {
$('button').click(function () {
var url = [location.protocol, '//', location.host, location.pathname].join('');
var queryAdded = false;
$('input[type=text]').each(function () {
if ($(this).val() != '') {
url += queryAdded ? '&' : '?';
url += $(this).prop('name') + '=' + $(this).val();
queryAdded = true;
}
});
location.href = url;
});
});
</script>
</head>
<body>
<div>
@Html.TextBox("field1")
</div>
<div>
@Html.TextBox("field2")
</div>
<div>
@Html.TextBox("field3")
</div>
<div>
<button>Click</button>
</div>
</body>
</html>