Как открыть ссылку на действие бритвы в новой вкладке?


Я пытаюсь открыть свою ссылку в новой вкладке (она должна быть в формате razor):

    <a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() }, new { target = "_blank" })" type="submit" id="runReport" class="button Secondary">@Reports.RunReport</a>

Это не работает. Кто-нибудь знает, как это сделать?

10 52

10 ответов:

похоже, вы путаете Html.ActionLink () на Url.Действие (). Url-адрес.Действие не имеет параметров для установки цели, поскольку оно возвращает только URL-адрес.

основываясь на вашем текущем коде, якорь, вероятно, должен выглядеть так:

<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })" 
   type="submit" 
   id="runReport" 
   target="_blank"
   class="button Secondary">
     @Reports.RunReport
</a>

просто использовать HtmlHelperActionLink и выберите RouteValues и HtmlAttributes соответственно.

@Html.ActionLink(Reports.RunReport, "RunReport", new { controller = "Performance", reportView = Model.ReportView.ToString() }, new { target = "_blank" })

это не будет компилироваться, поскольку UrlHelper.Action(string,string,object,object) не существует.

UrlHelper.Action будет генерировать только URL-адреса на основе действия, которое вы предоставляете, а не <a> разметки. Если вы хотите добавить HtmlAttribute (например,target="_blank", чтобы открыть ссылку в новой вкладке) вы можете:

  • добавить атрибут target в <a> элемент на себя:

    <a href="@Url.Action("RunReport", "Performance",
        new { reportView = Model.ReportView.ToString() })",
        target = "_blank" type="submit" id="runReport" class="button Secondary">
        @Reports.RunReport
    </a>
    
  • Использовать Html.ActionLink для создания <a> разметка элемент:

    @Html.ActionLink("Report View", "RunReport", null, new { target = "_blank" })
    

Если ваша цель-использовать помощник ActionLink и открыть новую вкладку:

@Html.ActionLink("New tab please", "Home", null , new { target = "_blank" })

@Html.ActionLink("New tab please", "Home", Nothing, New With {Key .target = "_blank"})

с именованными аргументами:

@Html.ActionLink(linkText: "TestTab", actionName: "TestAction", controllerName: "TestController", routeValues: null, htmlAttributes: new { target = "_blank"})

asp.net MVC ActionLink новая вкладка с угловым параметром

<a  target="_blank" class="btn" data-ng-href="@Url.Action("RunReport", "Performance")?hotelCode={{hotel.code}}">Select Room</a>

на

@ Url.Действие

<a href="@Url.Action("Action", "Controller")" target="_blank">Link Text</a>

вы устанавливаете его не type Как submit. Это означает, что браузер должен опубликовать ваш <form> данные на сервер.

на самом деле тег не имеет атрибута типа в соответствии с w3schools.

столь отдаленных и он должен работать для вас.

<a href="@Url.Action("RunReport", "Performance", new { reportView = Model.ReportView.ToString() })" type="submit" id="runReport" target="_blank" class="button Secondary"> @Reports.RunReport </a>

@Html.ActionLink(
"Pay Now",
"Add",
"Payment",
new { @id = 1 },htmlAttributes:new { @class="btn btn-success",@target= "_blank" } )