获取不带操作方法名和查询字符串的URL。

19 浏览
0 Comments

获取不带操作方法名和查询字符串的URL。

我有以下的url链接:

http://localhost:100001/foldername/controllername/actionmethodname/?querystring=1&querystring=true

我只想提取出不包含动作方法名和查询字符串的url。

所需的输出将是:

http://localhost:100001/foldername/controllername

0
0 Comments

问题的出现原因是在布局页面上无法使用ControllerContext来获取URL中的action名称。解决方法是使用Request.Url的方法来获取URL,并使用Replace()方法将action名称替换为空字符串。

以下是解决方法的代码示例:

string actionName = this.ControllerContext.RouteData.Values["action"].ToString();
string path = Request.Url.GetLeftPart(UriPartial.Path).Replace(actionName, String.Empty);

另外,还可以使用以下代码来实现相同的效果:

Request.Url.GetLeftPart(UriPartial.Path).Replace(Request.Url.Segments.Last(), string.Empty)

需要注意的是,这些代码应该放在视图(View)中进行使用。由于这些代码可能比较长,可以将其分成几行以提高代码可读性。

以上就是解决问题的方法。通过获取URL并替换action名称为空字符串,我们可以获得没有action方法名称和查询字符串的URL。

0