我希望打开本地网页(index.html)在查询中传递参数的情况,我可以在index.html中使用但我遇到问题,因为它会产生错误,如下所示,< / p>
系统找不到指定的文件。
Vb.net代码
Dim url As String = ConfigurationManager.AppSettings("Url")
url = url & "?id=" & txtFilePath.Text
//Url example
"C:\Program Files\Products\Bella\index.html?id=232"
Process.Start(url)
答案 0 :(得分:0)
我不完全理解你的问题,但我会尝试。
我不知道&#34; Url&#34;的价值是什么?是,txtFilePath.text应该是什么。但如果你想打开像
这样的网址 localhost/index.html?id=example
在浏览器中,您应该将其用作第一个参数。
Process.Start("IExplore.exe", url)
如果您试图让服务器读取您放入URL的参数,我不知道您是否可以使html页面获得这样的参数,可能是PHP或其他什么?但这对于启动浏览器和其他东西完全没有区别,只是单挑:)
但是如果你只是想在浏览器窗口中打开一个静态html文件,据我所知,你传递参数是不合时宜的,但你应该测试你的文件是否存在,所以你完全确定它存在于那条道路上。
File.Exists(url)
编辑: 由于你的网址是&#34; C:\ Program Files \ Products \ Bella \ index.html?id = 232&#34;我不相信你可以传递参数,我认为它会尝试找到扩展名为&#34; .html?id = 232&#34;的文件,这显然不存在。
答案 1 :(得分:0)
似乎有两个问题:
<强>首先强>
我认为错误的原因是你需要&#34; file://&#34;在URL之前(如评论中提到的Mych)以访问本地网页。许多浏览器会自动假设URL应该具有&#34; http://&#34;除非您指定它是本地文件。
根据您的浏览器,它可能会添加更多正斜杠,但两个应足以让Process.Start识别它。
因此,您的网址应如下所示:
"file://C:\Program Files\Products\Bella\index.html?id=232"
<强>第二强>
至于将参数传递给URL我发现的最佳方式(如jakobS建议的那样),你必须使用:
Process.Start("IExplore.exe", url)
'or
Process.Start("Chrome.exe", url)
或您喜欢的任何浏览器。
因此您可以通过以下方式修改代码:
Dim url As String = ConfigurationManager.AppSettings("Url")
url = url & "?id=" & txtFilePath.Text
'Add "file://" to the beginning of the url.
url = "file://" & url
Process.Start("IExplore.exe", url)
那应该摆脱你的错误并加载你的参数页面。
希望它有所帮助!