首先我已经看到了:Don't include empty parameters when submitting form
但是在形式上,您不仅可以输入,还可以选择例如,如果有人禁用了Java脚本怎么办?有没有更好的方法来隐藏空参数?
假设我有一个这样的表格:
<form asp-controller="Vehicles" asp-action="Index" method="get" >
<p>
<select asp-for="Length" asp-items="Model.Lengths">
<option value="">All</option>
</select>
Brand: <input type="text" asp-for="Search">
<input type="submit" value="Filter" />
</p>
</form>
现在,如果我从选择框中选择长度并单击过滤器,那么我在浏览器窗口中就有以下网址:
https://localhost:44358/Vehicles?Length=15&Search=
但是我想要这个:
https://localhost:44358/Vehicles?Length=15
或者如果我只搜索品牌而没有挑选长度,我想拥有它:
https://localhost:44358/Vehicles?Search=Mercedes
是否有一些辅助标签,例如添加到表单hide-empty="true"
或类似的东西?对于这个简单的问题,有准备使用的元素还是简单的解决方案?
答案 0 :(得分:0)
如果坚持要达到此要求,则可以尝试禁用为空的输入。对于禁用字段,它将不会生成查询字符串。
尝试类似的东西:
<form asp-controller="Vehicles" asp-action="Index" method="get">
<p>
Brand: <input type="text" id="Search" name="Search">
<input type="submit" value="Filter" onclick="return DisableNullFields();"/>
</p>
</form>
@section Scripts{
<script type="text/javascript">
function DisableNullFields() {
$('input').each(function(i) {
var $input = $(this);
if ($input.val() == '')
$input.attr('disabled', 'disabled');
});
}
</script>
}