diff --git a/Classes/ViewHelpers/Widget/UriViewHelper.php b/Classes/ViewHelpers/Widget/UriViewHelper.php
index 8d868712bc9e27046eaf36b9813d89c049a4c91e..3e3e6ecfec93c7fbeece9bfe45af6a3b834f7e04 100644
--- a/Classes/ViewHelpers/Widget/UriViewHelper.php
+++ b/Classes/ViewHelpers/Widget/UriViewHelper.php
@@ -116,10 +116,16 @@ class UriViewHelper extends AbstractViewHelper {
 		$argumentPrefix = $controllerContext->getRequest()->getArgumentPrefix();
 		$parentNamespace = $controllerContext->getRequest()->getWidgetContext()->getParentPluginNamespace();
 		$parentArguments = GeneralUtility::_GP($parentNamespace);
-		$allArguments = [$argumentPrefix => $arguments];
+		$allArguments = [$argumentPrefix => $arguments['arguments'] ?? []];
 		if ($parentArguments && isset($parentArguments['filters'])) {
 			$allArguments[$parentNamespace . '[filters]'] = $parentArguments['filters'];
 		}
+		if ($arguments['action'] ?? FALSE) {
+			$allArguments[$argumentPrefix]['action'] = $arguments['action'];
+		}
+		if (($arguments['format'] ?? '') !== '') {
+			$allArguments[$argumentPrefix]['format'] = $arguments['format'];
+		}
 		return $uriBuilder->reset()
 			->setArguments($allArguments)
 			->setSection($arguments['section'])