C# 如何在silverlight中获取当前URL的特定部分?
我需要当前URL的某一部分C# 如何在silverlight中获取当前URL的特定部分?,c#,silverlight,C#,Silverlight,我需要当前URL的某一部分 比如说URL是: 我想检查某个字符串是否包含 请不要给出“做字符串操作”之类的答案。 有没有办法获得这种URL?这个类有一些非常有用的方法来处理Uri损坏,包括Uri.TryCreate string myString = "http://www.abc.com/123/product/234?productid=123"; bool contains = myString.Contains("http://www.abc.com/123"); 具体来说,该方法可能
比如说URL是:
我想检查某个字符串是否包含 请不要给出“做字符串操作”之类的答案。 有没有办法获得这种URL?这个类有一些非常有用的方法来处理Uri损坏,包括Uri.TryCreate
string myString = "http://www.abc.com/123/product/234?productid=123";
bool contains = myString.Contains("http://www.abc.com/123");
具体来说,该方法可能会对您有所帮助。尝试以下方法:
Application.Current.Host.Source.AbsoluteUri
这将提供.xap文件的url。
您将必须替换.xap路径,并拥有应用程序uri
Application.Current.Host.Source.AbsoluteUri.Replace(@"ClientBin/MySilverlight.xap", "");
您可以使用HtmlPage.Document.DocumentUri获取当前uri(它在*.xaml.cs文件中工作)我选择了一个完全通用的解决方案:
/// <summary>
/// Get the site URL (one step up from ClientBin)
/// </summary>
public string HostWebSite
{
get
{
string host = App.Current.Host.Source.AbsoluteUri;
int clientBin = host.IndexOf("ClientBin", 0);
if (clientBin == -1)
return "Could not find \"ClientBin\" in " + host;
return host.Substring(0, clientBin);
}
}
//
///获取站点URL(从ClientBin向上一步)
///
公共字符串主机网站
{
得到
{
字符串host=App.Current.host.Source.AbsoluteUri;
int clientBin=host.IndexOf(“clientBin”,0);
如果(clientBin==-1)
return“在”+主机中找不到\“ClientBin\”;
返回host.Substring(0,clientBin);
}
}
如果我的答案不正确,请更具体一点。我想写一个通用代码!!!我希望那是自我理解。这只是一个例子,请不要按照例子中提供的值进行一般性思考。如果我尝试一下呢?还是通过了考验!你泛化它是什么意思?David,字符串xyz.com/确实包含URL,所以在我看来它是正确的。为什么你认为这是错误的?很好的信息,但找不到可以帮助我的东西。你也可以对该字符串进行解压编码。。用Application.Current.Host.Source.AbsolutePath
值替换它……我觉得这需要抛出一个异常,而不是返回一个伪字符串。