Мне нужно открыть другой сайт в новой вкладке из кода в Asp.net MVC.
вернуть перенаправление("URL"); используется для открытия другого сайта на той же вкладке.
Мне нужно открыть другой сайт в новой вкладке из кода в Asp.net MVC.
вернуть перенаправление("URL"); используется для открытия другого сайта на той же вкладке.
На самом деле это не кажется практичным для пользователей, потому что после аутентификации на второй вкладке им приходится обновлять первую вкладку, чтобы увидеть эффекты.
Свойство ReturnUrl
для FormsAuthentication
, кажется, делает то, что вы хотите. Когда пользователю необходимо войти в систему, он перенаправляется на страницу входа, а после входа — обратно.
Если вы широко используете javascript и ajax и хотите сохранить переменные javascript текущей страницы, но вам нужно войти в систему для выполнения вызовов ajax, может быть другое решение. Если ответом на ваш вызов ajax является неаутентифицированный заголовок, откройте лайтбокс или что-то подобное с полем имени пользователя и пароля. Используйте сообщение ajax для AccountController
, чтобы снова войти в систему. Таким образом, пользователь снова аутентифицируется, но вы сохраняете переменные javascript.
Это можно сделать только с помощью javascript. Попробуй это.
<%
Response.Write '<script type="text/javascript">
window.open(url);
</script>'
%>
Надеюсь, что это работает.
если вы вызываете действие из формы и используете тип ввода для отправки, вы можете попробовать <input type="submit" formtarget="_blank" />
, если вы используете ссылку <a>
или AjaxCall, вы можете попробовать <a target="_blank"></a>
или в свойстве набора помощников ajax @target="_blank"
вот мой код cshtml
@using (Html.BeginForm("PersonsReport", "Reports"))
{
<br />
<div style="text-align: center;">
<input type="submit" formtarget="_blank" class="btn btn-primary" value="GetReport" style="width:100%;" />
</div>
<br />
}
контроллер.cs
public ActionResult PersonsReport()
{
return Redirect("/PersonsReport.aspx");
}