私の現在のリクエストは:
Asp.netビューレイヤーにアクションURLを表示したいのですが、URLは次のようになります(を含む完全なURLhttp:// protocol+hostname+port+controllerName+actionName):
Url.Action("Action", "Controller", null, Request.Url.Scheme);
1。プロトコル(http://またはhttps://)
2。HostName
。QueryString
4。ポート
@{
var actionURL = Url.Action("Action", "Controller",
FormMethod.Post, Request.Url.Scheme)
+ Request.Url.PathAndQuery;
}
@using (Html.BeginForm("Action", "Controller", FormMethod.Post,
new { @action = actionURL }))
{
}
デフォルトルートの他に:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Application", action = "Index", id = UrlParameter.Optional }
);
新しいものを実装する必要があるかもしれません:
routes.MapRoute(
name: "ControllerXActionYRoute",
url: "controllerX/actionY",
defaults: new { controller = "controllerX", action = "actionY" }
);
そして、あなたは使うことができます:
<div>@Url.Action("Action", "Controller", null, Request.Url.Scheme);</div>
* 編集:*
完全なURLを取得するには、絶対に移動する必要があります。
<div>VirtualPathUtility.ToAbsolute(@Url.Action("Action", "Controller"));</div>