Ma demande actuelle est:
Je veux afficher une URL d'action dans la couche de vue asp.net, l'URL est comme ceci (URL complète, y compris http: // protocole + nom d'hôte + port + controllerName + actionName ):
Url.Action("Action", "Controller", null, Request.Url.Scheme);
1. Protocole (http: // ou https: //)
2. HostName
. QueryString
4. Port
@{
var actionURL = Url.Action("Action", "Controller",
FormMethod.Post, Request.Url.Scheme)
+ Request.Url.PathAndQuery;
}
@using (Html.BeginForm("Action", "Controller", FormMethod.Post,
new { @action = actionURL }))
{
}
outre la route par défaut:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Application", action = "Index", id = UrlParameter.Optional }
);
vous devrez peut-être en implémenter un nouveau:
routes.MapRoute(
name: "ControllerXActionYRoute",
url: "controllerX/actionY",
defaults: new { controller = "controllerX", action = "actionY" }
);
puis vous pouvez utiliser:
<div>@Url.Action("Action", "Controller", null, Request.Url.Scheme);</div>
* MODIFIER: *
pour obtenir l'url complète, vous devez aller à l'absolu.
<div>VirtualPathUtility.ToAbsolute(@Url.Action("Action", "Controller"));</div>