我有一个 Uri,其 URL 格式如下:/Review/{产品名称}/{id}
我想更新细分产品名称,例如:
uri.Segments[2] = product.UrlFriendlyProductName;
Run Code Online (Sandbox Code Playgroud)
当我执行上面的代码时,Uri 不会更新。有什么建议么?
Uri从某种意义上说,类是不可变的,您无法通过公共接口修改它。Segments基本上只是Path用“/”分割并返回。要进行编辑,Uri您可以使用UriBuilder类(它仍然不会修改原始内容,但会创建修改后的副本)。但它不包含方便的Segments属性,所以你必须自己分裂。例如:
var url = new Uri("http://something/Review/name/1");
var builder = new UriBuilder(url);
// extract segments from path
var segments = builder.Path.Split('/');
// modify
segments[2] = "bla";
// combine back
builder.Path = String.Join('/', segments);
// modified uri
var result = builder.Uri;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2148 次 |
| 最近记录: |