C# 有条件地形成URL字符串
我有6-7个bool值,比如bookmark、authoredBy和其他一些过滤器,我想形成url,比如如果应用了任何过滤器,它会连接到主url,比如 有什么吗?bookmark=true&author=true,像这样我可以用if-else,但那会很长。还有其他方法吗C# 有条件地形成URL字符串,c#,C#,我有6-7个bool值,比如bookmark、authoredBy和其他一些过滤器,我想形成url,比如如果应用了任何过滤器,它会连接到主url,比如 有什么吗?bookmark=true&author=true,像这样我可以用if-else,但那会很长。还有其他方法吗 string formQueryFromBool(string name , bool val){ return ((val) ? name + "=" + val.toString() : "" );
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 = "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);
对于其他变量,使用相同的方法..考虑使用该类。请勾选此示例-
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);
或者,检查此问题的答案。这是一个更面向对象的解决方案-
考虑使用该类。请勾选此示例-
或者,检查此问题的答案。这是一个更面向对象的解决方案-
我认为他不是这个意思。他可能想知道如何在服务器端干净地接收它。你说得对,filip我想要什么如果任何值为false,那么不要将其添加到querystring只添加那些为false的值true@Mac&@Filip Ekberg&@Srinivas,在任何人发表评论之前,我已经对此进行了更新,我想你们在更新我的帖子时已经发布了……。@Srinivas,可读性并不重要,OP希望避免冗长的if…else循环。那么这就是简单的方法…我不认为这就是他的意思。他可能想知道如何在服务器端干净地接收它。你说得对,filip我想要什么如果任何值为false,那么不要将其添加到querystring只添加那些为false的值true@Mac&@Filip Ekberg&@Srinivas,在任何人发表评论之前,我已经对此进行了更新,我想你们在更新我的帖子时已经发布了……。@Srinivas,可读性并不重要,OP希望避免冗长的if…else循环。那么这就是简单的方法…如果同时应用了多个过滤器,那么还会应用Supplose和bookmark author过滤器,那么Querystring应该会像这样吗?bookmark=true&author=true如果所有六个过滤器都存在,那么将所有六个值添加到查询中string@Mac如果作者的条件也是这样,就像我为bookmark做的一样。这就是我正在做的,但是代码变得有点长,所以我想知道是否还有其他简单的方法thanks@Mac然后使用Dictionary并设置键并在其中进行迭代。如果同时应用多个过滤器,那么还会应用suppose和bookmark author过滤器,然后应用Querystring应该喜欢什么吗?bookmark=true&author=true如果所有六个过滤器都存在,则将所有六个值添加到查询中string@Mac如果作者的条件也是这样,就像我为bookmark做的一样。这就是我正在做的,但是代码变得有点长,所以我想知道是否还有其他简单的方法thanks@Mac然后使用Dictionary并设置键并遍历它,如果bookmark为false,那么rinivas的方法将不起作用。url将为google.com?&author=true,这是不正确的。您应该添加后缀而不是前缀。我的方式是最好的方式,不会失败;)如果bookmark为false,Srinivas的方法将不起作用。url将为google.com?&author=true,这是不对的。您应该添加后缀而不是前缀。我的方式是最好的方式,不会失败;)