有条件地生成URL字符串
问题描述:
我有6-7 bool值,如书签,authoredBy和其他一些过滤器我想要形成url,如果任何过滤器应用它连接到主要的url像 something?bookmark = true & author = true像这样我就可以使用的if else,但是这将是漫长的,还有没有其他的办法有条件地生成URL字符串
答
string formQueryFromBool(string name , bool val){
return ((val) ? name + "=" + val.toString() : "");
}
bool bookmark=false;
bool author=true;
var qString = formQueryFromBool("bookmark",bookmark) + "&" + formQueryFromBool("author",author)
答
那么,在其他变量相同的方式做到这一点的方式,
........
string url = "http://www.google.com?";
if(bookmark)
{
url+="bookmark=true&"
}
if(author)
{
url+="author=true&"
}
...........
..
答
String url = "google.com?";
bool bookmark = true, author=true;
if(bookmark)
{
url += "bookmark=true&";
}
if(author)
{
url = "author=true&"
}
url = url.Substring(0,url.length-1);
答
考虑使用URIBuilder
类。检查这个例子 - http://www.codeproject.com/KB/aspnet/UrlBuilder.aspx
或者,检查这个SO问题的答案。这是一个更加面向对象的解决方案 -
我不认为这是他的意思。他可能想知道如何在服务器端收到干净的文件。 – 2010-11-29 09:48:38
你是正确的filip我想要什么,如果任何值是假的,那么不要把它添加到查询字符串只添加那些是真的 – Mac 2010-11-29 09:50:16
@Mac在这种情况下看到我的答案.. – 2010-11-29 09:51:50