标签: query-string

如何从asp中的查询字符串中获取数据?

我正在为IT类开发一个项目,我需要在php页面中传递查询字符串的值,并将其读入ASP页面上的隐藏字段.

我目前正在将参数从php页面传递给ASP,但我对.NET一般都是新手.如何从字符串中获取数据并将其转换为C#中的变量?例如,如果网址是blah.com/upload?username=washington,我将如何获得"华盛顿"并将其保存到隐藏字段中?万分感谢.

Jergason

编辑

我知道这很容易.万分感谢.

c# asp.net query-string

4
推荐指数
1
解决办法
3万
查看次数

RewriteCond%{QUERY_STRING}出现问题,后向引用未在最终到达网址中显示

我的.htaccess文件中有以下内容:

RewriteCond %{QUERY_STRING} ^route\=product\/category\&path\=35\&page\=([0-9]+)$
RewriteRule ^index\.php$ http://%{HTTP_HOST}/product/category/35/page_$1? [R=301,L]
Run Code Online (Sandbox Code Playgroud)

当我输入URL时,它的行为并不像预期的那样:

http://example.com/index.php?route=product/category&path=35&page=2
Run Code Online (Sandbox Code Playgroud)

它被重写为:

http://example.com/product/category/35/page_
Run Code Online (Sandbox Code Playgroud)

有人能告诉我,我做错了吗?

谢谢,

eb_dev

mod-rewrite backreference query-string

4
推荐指数
1
解决办法
7447
查看次数

System.Uri查询字符串中的文字&符号

我正在开发一个客户端应用程序,它使用一个宁静的服务来按名称查找公司.重要的是,我能够在查询中包含文字&符号,因为这个字符在公司名称中非常常见.

但是每当我将%26(URI转义的&符号)传递给System.Uri它时,它会将其转换回常规的&符号!仔细观察,只有两个未转换回来的字符是散列(%23)和百分比(%25).

让我们说我想搜索一家名为"Pierce&Pierce"的公司:

var endPoint = "http://localhost/companies?where=Name eq '{0}'";
var name = "Pierce & Pierce";
Console.WriteLine(new Uri(string.Format(endPoint, name)));
Console.WriteLine(new Uri(string.Format(endPoint, name.Replace("&", "%26"))));
Console.WriteLine(new Uri(string.Format(endPoint, Uri.EscapeUriString(name))));
Console.WriteLine(new Uri(string.Format(endPoint, Uri.EscapeDataString(name))));
Run Code Online (Sandbox Code Playgroud)

以上所有四种组合都返回:

http://localhost/companies?where=Name eq 'Pierce & Pierce'
Run Code Online (Sandbox Code Playgroud)

这会导致服务器端出错,因为&符号被(正确地)解释为查询arg分隔符.我真正需要它返回的是原始字符串:

http://localhost/companies?where=Name eq 'Pierce %26 Pierce'
Run Code Online (Sandbox Code Playgroud)

如何在不System.Uri完全丢弃的情况下解决此问题?我不能在最后一刻用%26替换所有的&符号,因为通常会涉及多个查询参数,我不想破坏它们的分隔符.

注意:这个问题中讨论了类似的问题,但我特别指的是System.Uri.

.net uri escaping query-string

4
推荐指数
1
解决办法
3859
查看次数

是否有可能在ASP.NET MVC路径到达控制器之前更改它的querystring变量?

我在ASP.NET MVC中有一个控制器方法,如下所示:

public ActionResult GetAlbumPictures(int albumId)
{
    var album = AlbumRepo.GetSingle(albumId);
    var pictures = album.Pictures;
    return View(pictures);
}
Run Code Online (Sandbox Code Playgroud)

此方法的路由如下所示:

routes.MapRoute(null,
                "pictures"
                new { controller = "Album", action = "GetAlbumPictures" });
Run Code Online (Sandbox Code Playgroud)

用户将使用以下URL获取图片,按照相册ID进行过滤:

GET http://server/pictures?albumid=10
Run Code Online (Sandbox Code Playgroud)

但是,我想将querystring参数更改为album而不是albumid:

GET http://server/pictures?album=10
Run Code Online (Sandbox Code Playgroud)

这意味着需要将控制器方法修改为:

public ActionResult GetPictures(int album)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

然而,这是不理想的,因为现在的方法有一个名为参数album,其可以被混淆为Album 对象来代替IDAlbum.

我的问题是,是否有任何方法配置ASP.NET MVC,以便在路由中,它将接收一个调用的查询字符串参数album,但然后将其作为albumId参数传递给控制器?

PS我知道我可以在路由表中执行此操作:

routes.MapRoute(null,
                "album/{albumId}/pictures",
                new { controller = "Album", action = "GetAlbumPictures" });
Run Code Online (Sandbox Code Playgroud)

但由于遗留问题,我必须使其适用于查询字符串方法.

c# asp.net-mvc routing query-string asp.net-mvc-3

4
推荐指数
1
解决办法
8543
查看次数

如何在c#中将数组作为查询字符串的参数发送?

我正在尝试使用自行开发的Web API来检索一些数据.文档全部用PHP编写.我正在看的例子是这样的:

$params = array(
    'id' => 1
    ,'data' => array(
        ,'email' => 'example@hasoffers.com'
    )

$url = "www.someapi.com/api?" . http_build_query( $params );
Run Code Online (Sandbox Code Playgroud)

我正在使用C#WebClient类,但我无法弄清楚如何序列化数据参数:

WebClient wc = new WebClient();
wc.QueryString["id"] = "1";
wc.QueryString["data"] = // I have no idea.

string json = wc.DownloadString(apiUrl);
Run Code Online (Sandbox Code Playgroud)

我尝试了一些变化:

wc.QueryString["data"] = "email=test@stackoverflow.com";
wc.QueryString["data"] = Uri.EscapeDataString("data[email]=test@stackoverflow.com");
wc.QueryString["data"] = Uri.EscapeDataString("email[0]=test@stackoverflow.com");
wc.QueryString["data"] = Uri.EscapeDataString("email=test@stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)

当然,我没有任何地方的PHP设置来查看http_build_query()实际返回的内容.

php c# arrays query-string

4
推荐指数
1
解决办法
1714
查看次数

Facebook og:url meta标签剥离查询参数

我在包含查询字符串的静态页面上有一个打开的图元标记,每次我通过Facebook的url linter运行它时,查询值都会被删除.

例如:

http://www.site.com/?ref=23a3as3hth456
Run Code Online (Sandbox Code Playgroud)

会回来的

http://www.site.com/?ref
Run Code Online (Sandbox Code Playgroud)

奇怪的是,似乎如果值不包含任何数字,但是是纯字符串,它将注册.例如:

http://www.site.com/?ref=23a3as3hth456&sample=testing
Run Code Online (Sandbox Code Playgroud)

会回来的

http://www.site.com/?ref&sample=testing
Run Code Online (Sandbox Code Playgroud)

此外,实际页面URL包含包含相同值的查询字符串,并且当Linter回退到默认页面URL时,将保留这些值.

有没有人有任何进一步的信息?我用urlencode()编码整个URL字符串,但仍然遇到这个问题.是否有任何变通方法,或者我错过了什么?

谢谢!

facebook meta-tags query-string opengraph

4
推荐指数
1
解决办法
2352
查看次数

Javascript更改查询字符串以进行刷新

我正在寻找一种方法来改变使用javascript(包含jquery)的html请求的获取查询字符串,而无需刷新页面.刷新时将继承此查询字符串.例如,http://thissite.site/index.html?id=123将是原始URL,然后发生事件并且id更改为235.刷新页面时,刷新的链接将是http://thissite.site/index.html?id=235.

javascript jquery get refresh query-string

4
推荐指数
1
解决办法
4157
查看次数

是否有一个查询字符串字符,其含义是"忽略超出此点的字符串"?

是否有一个保留的查询字符串字符,通常用于忽略字符串的各个部分?像这样的东西:

?foo=bar&baz=quux*some character*&sky=blue
Run Code Online (Sandbox Code Playgroud)

在此查询字符串中添加一些字符结果,并忽略结束:

?foo=bar&baz=quux
Run Code Online (Sandbox Code Playgroud)

我知道通常由解析查询字符串的程序决定如何处理任何内容,但我想知道这样的事情是否存在与a表示空格的方式相同.

url query-string

4
推荐指数
1
解决办法
1608
查看次数

用razor引擎在mvc4中重写url

我想重写以下网址 -

http://localhost:99/Product/CategoryLevel?CategoryId=65&ProductName=Vitamins

http://localhost:99/Product/Vitamins,

(要么)

http://localhost:99/Product/CategoryLevel/Vitamins

(要么)

http://localhost:99/Vitamins

(或)如何从URL中删除(或)隐藏查询字符串(显示给用户)?

我尝试使用url重写模块(iis)和asp.net路由并在互联网上搜索解决方案,但我没有找到正确的解决方案,请建议任何解决方案.

asp.net-mvc url-rewriting query-string asp.net-mvc-4 url-rewrite-module

4
推荐指数
1
解决办法
1万
查看次数

为什么Nginx变量$ args或$ query_String在&之后不包含查询参数?

我正在一个项目中,我需要设置nginx重写规则来修改带有查询请求的url。例如:

www.abc.com/pathA/pathB/script.pl?paraA=10¶B=20
将被重写为:www.abc.com/pathA/pathB/script.pl.1020

我尝试使用变量$ args或$ query_string(基于nginx doc,它们相同)来检查url是否具有查询请求,因为我要重写。但是我发现$ args(或$ query_string)仅包含&之前的内容。

在我的示例中,这意味着$ args = paraA = 10。&之后,我无法获取参数内容。我确定此Nginx错误日志,并将其设置为调试级别。

知道为什么我在变量$ args或$ query_string中&之后无法获取查询参数吗?

先谢谢了。

url nginx url-rewriting query-string

4
推荐指数
2
解决办法
2万
查看次数