我正在开发一个网站,它显示来自数据库的数据并以网格显示给用户,然后有一些过滤器,如员工类型,支付等级e.t.c。
要求是用户应该能够通过复制URL并将其发送给某人来共享过滤结果,因此我使用Form.Get方法允许值通过查询字符串传递给Action方法。
一切正常,只有URL附加空复选框的值以及例如Employee类型的URL有3个复选框A类,B类和C类,假设用户只检查过A类,即URL生成的是:http://sitename.com/?classA=true&classB=false&classC=false。
有没有办法可以从QS中删除这些参数,因为我被要求用复选框替换国家/地区下拉菜单,以便用户可以组合搜索,这样URL将继续附加到所有未选择的国家/地区作为好吧,我将手动迭代每个值以过滤后端的记录。
提前感谢您的时间。
答案 0 :(得分:0)
或者只是用类似
的语言写一些简短的脚本if(value = false): cut the "&key=value" < (string) pair off
goto next
答案 1 :(得分:0)
我对c#不太了解,但这是在PHP中完成的。我相信你会在C#中找到类似的方法。
如果需要为其传递多个值,可以在查询字符串中定义键:
?键[] =值1&安培;键[] =值2&安培;键[] =值N
在您的情况下,如果选择了classA和classB: http://sitename.com/?class[]=classA&class[]=classB
PHP就是这样读取的:
$_GET["class"] = [
0 => "classA",
1 => "classB"
];
这样,您只能在URL中选择所选参数。
更新:用Google搜索C#,不确定它是否是最佳方式。
例如:http://sitename.com/?class=classA&class=classB
将参数作为字符串数组:
public Example(string[] a)
{
string first = a[0]; // classA
string second = a[1]; // classB
return View();
}