J'essaie d'ouvrir mon lien dans un nouvel onglet (il doit être au format rasoir):
<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() }, new { target = "_blank" })" type="submit" id="runReport" class="button Secondary">@Reports.RunReport</a>
Cela ne fonctionne pas bien. Quelqu'un sait-il comment faire ça?
On dirait que vous confondez Html.ActionLink () pour rl.Action () . Url.Action n'a pas de paramètre pour définir la cible, car elle ne renvoie qu'une URL.
En fonction de votre code actuel, l'ancre devrait probablement ressembler à ceci:
<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })"
type="submit"
id="runReport"
target="_blank"
class="button Secondary">
@Reports.RunReport
</a>
Utilisez simplement le HtmlHelper
ActionLink
et définissez les RouteValues
et HtmlAttributes
en conséquence.
@Html.ActionLink(Reports.RunReport, "RunReport", new { controller = "Performance", reportView = Model.ReportView.ToString() }, new { target = "_blank" })
Cela ne compilera pas car UrlHelper.Action(string,string,object,object)
n'existe pas.
UrlHelper.Action
générera uniquement des URL basées sur l'action que vous fournissez, et non pas <a>
balisage. Si vous voulez ajouter un HtmlAttribute (comme target="_blank"
, pour ouvrir le lien dans un nouvel onglet), vous pouvez soit:
Ajouter l'attribut cible à la <a>
élément par vous-même:
<a href="@Url.Action("RunReport", "Performance",
new { reportView = Model.ReportView.ToString() })",
target = "_blank" type="submit" id="runReport" class="button Secondary">
@Reports.RunReport
</a>
Utilisez Html.ActionLink pour générer un <a>
élément de balisage:
@Html.ActionLink("Report View", "RunReport", null, new { target = "_blank" })
Si votre objectif est d'utiliser l'assistant ActionLink et d'ouvrir un nouvel onglet:
@Html.ActionLink("New tab please", "Home", null , new { target = "_blank" })
@Html.ActionLink("New tab please", "Home", Nothing, New With {Key .target = "_blank"})
Avec des arguments nommés:
@Html.ActionLink(linkText: "TestTab", actionName: "TestAction", controllerName: "TestController", routeValues: null, htmlAttributes: new { target = "_blank"})
For
@ Url.Action
<a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>
@Html.ActionLink(
"Pay Now",
"Add",
"Payment",
new { @id = 1 },htmlAttributes:new { @class="btn btn-success",@target= "_blank" } )
asp.net mvc nouvel onglet ActionLink avec angular
<a target="_blank" class="btn" data-ng-href="@Url.Action("RunReport", "Performance")?hotelCode={{hotel.code}}">Select Room</a>
<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })" type="submit" id="runReport" target="_blank" class="button Secondary"> @Reports.RunReport </a>
Vous la définissez type
comme submit
. Cela signifie que le navigateur doit publier votre <form>
données sur le serveur.
En fait, une balise n'a pas d'attribut de type selon w3schools .
Si distant type
attribut et cela devrait fonctionner pour vous.