diff --git a/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs b/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs
index ef911e5db8..83393547a3 100644
--- a/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs
+++ b/src/Microsoft.AspNetCore.Mvc.Core/ControllerBase.cs
@@ -1002,7 +1002,7 @@ namespace Microsoft.AspNetCore.Mvc
/// The with set.
[NonAction]
public virtual RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler)
- => RedirectToPagePermanent(pageName, routeValues: null);
+ => RedirectToPagePermanent(pageName, pageHandler, routeValues: null, fragment: null);
///
/// Redirects () to the specified
diff --git a/src/Microsoft.AspNetCore.Mvc.RazorPages/PageBase.cs b/src/Microsoft.AspNetCore.Mvc.RazorPages/PageBase.cs
index ccb478c495..060ec8bdea 100644
--- a/src/Microsoft.AspNetCore.Mvc.RazorPages/PageBase.cs
+++ b/src/Microsoft.AspNetCore.Mvc.RazorPages/PageBase.cs
@@ -972,7 +972,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages
/// The page handler to redirect to.
/// The .
public virtual RedirectToPageResult RedirectToPage(string pageName, string pageHandler)
- => RedirectToPage(pageName, routeValues: null);
+ => RedirectToPage(pageName, pageHandler, routeValues: null, fragment: null);
///
/// Redirects () to the specified
@@ -1066,7 +1066,7 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages
/// The parameters for a route.
/// The fragment to add to the URL.
/// The with set.
- protected RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment)
+ public virtual RedirectToPageResult RedirectToPagePermanent(string pageName, string pageHandler, object routeValues, string fragment)
=> new RedirectToPageResult(pageName, pageHandler, routeValues, permanent: true, fragment: fragment);
///
diff --git a/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs b/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
index ccdd720768..11a35576cf 100644
--- a/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.Core.Test/ControllerBaseTest.cs
@@ -986,6 +986,213 @@ namespace Microsoft.AspNetCore.Mvc.Core.Test
Assert.Equal(expected, resultPermanent.RouteValues);
}
+ [Fact]
+ public void RedirectToPage_WithPageName()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page";
+
+ // Act
+ var result = controller.RedirectToPage(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndHandler()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = controller.RedirectToPage(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var routeVaues = new { key = "value" };
+
+ // Act
+ var result = controller.RedirectToPage(pageName, routeVaues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameHandlerAndFragment()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = controller.RedirectToPage(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameRouteValuesHandlerAndFragment()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = controller.RedirectToPage(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageName()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+
+ // Act
+ var result = controller.RedirectToPagePermanent(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndPageHandler()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = controller.RedirectToPagePermanent(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = controller.RedirectToPagePermanent(pageName, routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerAndFragment()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = controller.RedirectToPagePermanent(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerRouteValuesAndFragment()
+ {
+ // Arrange
+ var controller = new TestableController();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var routeValues = new { key = "value" };
+ var fragment = "fragment";
+
+ // Act
+ var result = controller.RedirectToPagePermanent(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
[Fact]
public void RedirectToPagePreserveMethod_WithParameterUrl_SetsRedirectResultPreserveMethod()
{
diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageModelTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageModelTest.cs
index 9346bfe5c3..f5b93119e8 100644
--- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageModelTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageModelTest.cs
@@ -937,6 +937,275 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages
}
}
+ [Fact]
+ public void RedirectToPage_WithNoArguments()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+
+ // Act
+ var result = pageModel.RedirectToPage();
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Null(result.PageName);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageName()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page";
+
+ // Act
+ var result = pageModel.RedirectToPage(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithRouteValues()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = pageModel.RedirectToPage(routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Null(result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndHandler()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = pageModel.RedirectToPage(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var routeVaues = new { key = "value" };
+
+ // Act
+ var result = pageModel.RedirectToPage(pageName, routeVaues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameHandlerAndFragment()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = pageModel.RedirectToPage(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameRouteValuesHandlerAndFragment()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = pageModel.RedirectToPage(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageName()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndPageHandler()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName, routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerAndRouteValues()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName, pageHandler, routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerAndFragment()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerRouteValuesAndFragment()
+ {
+ // Arrange
+ var pageModel = new TestPageModel();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var routeValues = new { key = "value" };
+ var fragment = "fragment";
+
+ // Act
+ var result = pageModel.RedirectToPagePermanent(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
[Fact]
public void RedirectToPagePreserveMethod_WithParameterUrl_SetsRedirectResultPreserveMethod()
{
diff --git a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageTest.cs b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageTest.cs
index d8fa42deb6..661130c1c6 100644
--- a/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageTest.cs
+++ b/test/Microsoft.AspNetCore.Mvc.RazorPages.Test/PageTest.cs
@@ -1023,6 +1023,275 @@ namespace Microsoft.AspNetCore.Mvc.RazorPages
Assert.Equal(expected, resultPermanent.RouteValues);
}
+ [Fact]
+ public void RedirectToPage_WithNoArguments()
+ {
+ // Arrange
+ var page = new TestPage();
+
+ // Act
+ var result = page.RedirectToPage();
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Null(result.PageName);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageName()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page";
+
+ // Act
+ var result = page.RedirectToPage(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithRouteValues()
+ {
+ // Arrange
+ var page = new TestPage();
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = page.RedirectToPage(routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Null(result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndHandler()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = page.RedirectToPage(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var routeVaues = new { key = "value" };
+
+ // Act
+ var result = page.RedirectToPage(pageName, routeVaues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameHandlerAndFragment()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = page.RedirectToPage(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPage_WithPageNameRouteValuesHandlerAndFragment()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = page.RedirectToPage(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageName()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndPageHandler()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName, pageHandler);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNameAndRouteValues()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName, routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerAndRouteValues()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var routeValues = new { key = "value" };
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName, pageHandler, routeValues);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerAndFragment()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var fragment = "fragment";
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName, pageHandler, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
+ [Fact]
+ public void RedirectToPagePermanent_WithPageNamePageHandlerRouteValuesAndFragment()
+ {
+ // Arrange
+ var page = new TestPage();
+ var pageName = "/Page-Name";
+ var pageHandler = "page-handler";
+ var routeValues = new { key = "value" };
+ var fragment = "fragment";
+
+ // Act
+ var result = page.RedirectToPagePermanent(pageName, pageHandler, routeValues, fragment);
+
+ // Assert
+ Assert.IsType(result);
+ Assert.Equal(pageName, result.PageName);
+ Assert.Equal(pageHandler, result.PageHandler);
+ Assert.Collection(
+ result.RouteValues,
+ item =>
+ {
+ Assert.Equal("key", item.Key);
+ Assert.Equal("value", item.Value);
+ });
+ Assert.Equal(fragment, result.Fragment);
+ Assert.True(result.Permanent);
+ }
+
[Fact]
public void RedirectToPagePreserveMethod_WithParameterUrl_SetsRedirectResultPreserveMethod()
{