我知道如果我有一个像XController/Action?id = 1的url,还有一个action方法
void Action(int id)
Run Code Online (Sandbox Code Playgroud)
将自动从查询字符串中读取id参数.
但是,当我事先没有知道所有参数的名称时,如何访问整个查询字符串.例如:
void Action(QueryStringCollection coll) {
object id = coll["id"];
}
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?
我正在尝试学习asp.net(vb.net),我遇到了一些麻烦.我想根据查询字符串更改页面内容.
在经典的asp我会做:
<% If request.querystring("page") = 1 THEN %>
Run Code Online (Sandbox Code Playgroud)
- 整页 -
<% Else %>
Run Code Online (Sandbox Code Playgroud)
- 不同的页面 -
<% End If %>
Run Code Online (Sandbox Code Playgroud)
我能进入的最近的网络是.net
Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)
If Request.QueryString("page") = 1 Then
lblMessage1.Text = "message"
Else
lblMessage1.Text = "message2"
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
这对小事来说似乎只是好事.更改整个页面的最佳方法是什么?
我想映射一下:
http://www.example.com/index.php?param1=value1¶m2=value2¶m3=value3 (etc. ad infinitum)
Run Code Online (Sandbox Code Playgroud)
至
http://www.example.com/index.php?param1=newvalue1¶m2=value2¶m3=value3 (etc.)
Run Code Online (Sandbox Code Playgroud)
换句话说,只需更改查询字符串中单个参数的值即可.我知道旧的价值是什么,所以我试图匹配确切的文本index.php?param1=value1并替换它index.php?param1=newvalue1.我似乎无法找到任何关于如何使用mod_rewrite执行此操作的示例.非常感谢任何帮助.
我在C#on .NET上有我的课程,在URI的请求之后调用.我需要检查这个URI是否包含一些参数.
例如 :
http://www.website.com/page.aspx?ID=9 // must return YES
http://www.website.com/page.aspx?ID=9&Page=2 // must return YES
http://www.website.com/page.aspx // must return NO
Run Code Online (Sandbox Code Playgroud)
可能吗?当然我无法知道URI中每个参数的名称,因此对于随机查询字符串,如:
http://www.website.com/page.aspx?RandomParameter=1
Run Code Online (Sandbox Code Playgroud)
我需要回YES.我可以做吗?
所以我想在url中替换GET变量值,如果变量不存在,则将其添加到url.
编辑:我这样做的元素href不是页面的当前位置..
我不擅长使用javascript,但我确实知道如何使用jQuery以及javascript的基础知识.我知道如何编写正则表达式但不知道如何使用正则表达式的javascript语法以及使用它的函数.
这是我到目前为止,它在第3行有一个错误:在jsfiddle(或下面)看到它:http://jsfiddle.net/MadLittleMods/C93mD/
function addParameter(url, param, value) {
var pattern = new RegExp(param + '=(.*?);', 'gi');
return url.replace(pattern, param + '=' + value + ';');
alert(url);
}
Run Code Online (Sandbox Code Playgroud) 我有一个站点,它成功地将第一个斜杠后的内容传递给指定的.php文件.(优雅地:删除".php")
site.com/azamat to site.com/azamat.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC]
Run Code Online (Sandbox Code Playgroud)
如何向这些规则添加其他参数,以便我可以传递"页面"参数,例如:
site.com/azamat/bagatov to site.com/azamat.php?page=bagatov
要么
site.com/thisisthefile/andparams to site.com/thisisthefile.php?page=andparams
给定以下Web API控制器操作:
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
Run Code Online (Sandbox Code Playgroud)
即使查询字符串中的参数不存在,执行以下请求也不会失败:
http://localhost:22297/api/values?someinvalidparameter=10
Run Code Online (Sandbox Code Playgroud)
有没有办法确保查询字符串中的所有参数都是被调用操作的有效参数?
我知道查询字符串的最大长度因浏览器而异.Internet Explorer最多可包含2048个字符.
如果我在代码中执行URLEncode,这些编码字符是否会被视为额外字符?
例如,假设我有两个文本框.在通过查询字符串HttpUtility.UrlEncode(TextBox2.Text)传递文本框的值之前,我执行然后通过查询字符串将这些文本框值传递给另一个网页.
假设URL可能如下所示:WebForm2.aspx?Username=Kutti&Password=Pa%26%26word.
这个编码的东西%26%26是否会被视为URL中的额外字符?
换句话说,它会采取Pa%26%26word相同的字符Pa&&word吗?
我有一个.ashx处理程序,根据处理过程,在完成处理后会重定向到成功或错误页面.处理程序在我的站点中,但成功或错误页面可能不是(这是用户可以配置的).
有没有什么方法可以将错误详细信息传递给错误页面而不将其放在查询字符串中?
我试过了:
Response.Redirect是标头,标头会被清除Server.Transfer,而不是Response.Redirect,但这不适用于不在我的网站中的网址我知道我可以在查询字符串中传递数据,但在某些情况下,我需要传递的数据对于查询字符串来说可能太长了.我还有其他选择吗?
query-string ×10
c# ×3
asp.net ×2
php ×2
replace ×2
variables ×2
.htaccess ×1
.net ×1
asp.net-mvc ×1
controller ×1
filter ×1
get ×1
javascript ×1
mod-rewrite ×1
parameters ×1
rewrite ×1
url ×1
url-encoding ×1