Я использую jquery ajax для вызова (получения) действия, которое отображает частичное представление для создания (ввода) нового продукта. Содержимое этого частичного просмотра вставляется в тег vid на полной странице с базой _layout. Аякса код ниже:Страница входа перенаправляется обратно только на обнаженный частичный вид
$("#Create").on('click', function (e) {
//debugger;
e.preventDefault();
$.ajax({
type: "GET",
data: { returnUrl: String(window.location) }, <-- passing in the Url
url: "/CreateGroup/CreateGroup",
dataType: 'html',
success: function (data) {
$("#group-list").html(data);
},
});
})
.....
<div id="group-list">
@Html.Partial("PagedGroupList")
</div>
Действие:
// GET: /Create/
[Authorize]
public PartialViewResult CreateGroup(string returnUrl)
{
ViewBag.ReturnUrl = returnUrl;
CreateGroupModel cgm = new CreateGroupModel();
cgm.ReturnUrl = returnUrl;
cgm.group = new Static_Group();
return PartialView("CreateGroup", cgm);
}
Теперь, если я войти, прежде чем нажать кнопку СОЗДАТЬ, eveerything отлично, как и ожидалось. Проблема заключается в том, что нажата кнопка CREATE без входа в систему. Из-за [Авторизовать] страница входа будет первой и после входа в систему, ожидается, что она будет перенаправлена обратно на мой CREATE partialview внутри полной страницы вместе. Проблема в том, что страница входа переадресовывает обратно в NAKED, создавая частичное представление без каких-либо элементов своего родительского представления. Если страница CREATE НЕ является частичным просмотром, страница входа в систему полностью перенаправляется на полную страницу.
Я использую имя входа MVC4 defafult. Я попытался отправить страницу входа в форму ajax и использовать OnSuccess для вызова document.location как на странице входа, так и в создании частичного просмотра, но я обнаружил, что это проблема returnUrl частичного просмотра. Я также попробовал Request.UrlReferrer.AbsoluteUri, но он дает тот же URL-адрес, что «/CreateGroup/CreateGroup?returnUrl=http%3A%2F%2Fwww.dev.com%3A22531%2F» или полностью: http://www.dev.com:22531/CreateGroup/CreateGroup?returnUrl=http://www.dev.com:22531/. Если вы поместите Url в браузер, он также отображает чистое частичное представление.
Я считаю, что, должно быть, я пропустил что-то очевидное. Это должно быть распространенным сценарием, но я не мог найти нити из поиска. Есть ли URL-адрес, который отображает частичное представление внутри его родительского представления? если нет, то можно ли перенаправить назад к предыдущему виду из частичного просмотра?
Выглядит, нет URL-адреса для частичного просмотра с его главной страницей. Решение, о котором я могу сейчас думать, - это перевести логин на главную страницу и передать имя частичного просмотра в Model или viewbag или temp сеанса, чтобы снова отобразить всю страницу с правильным частичным просмотром.