diff --git a/core/modules/views/views_ui/admin.inc b/core/modules/views/views_ui/admin.inc
index 5b0ae41..6a7f5d6 100644
--- a/core/modules/views/views_ui/admin.inc
+++ b/core/modules/views/views_ui/admin.inc
@@ -315,9 +315,18 @@ function views_ui_edit_page(ViewUI $view, $display_id = NULL) {
   return $build;
 }
 
-function views_ui_build_preview(ViewUI $view, $display_id, $render = TRUE) {
+/**
+ * Page callback for rendering the preview form and the preview of the view.
+ *
+ * @param Drupal\views_ui\ViewUI $view
+ *   The view UI object to preview.
+ * @param $display_id
+ *   The display_id to preview.
+ * @return array
+ *   The form array of the full preview form.
+ */
+function views_ui_build_preview(ViewUI $view, $display_id) {
   $view->displayID = $display_id;
-  $view->renderPreview = $render;
   return entity_get_form($view, 'preview');
 }
 
diff --git a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewPreviewFormController.php b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewPreviewFormController.php
index bddb8c5..e336762 100644
--- a/core/modules/views/views_ui/lib/Drupal/views_ui/ViewPreviewFormController.php
+++ b/core/modules/views/views_ui/lib/Drupal/views_ui/ViewPreviewFormController.php
@@ -47,7 +47,6 @@ public function form(array $form, array &$form_state, EntityInterface $view) {
       '#description' => t('Separate contextual filter values with a "/". For example, %example.', array('%example' => '40/12/10')),
       '#id' => 'preview-args',
     );
-    $form['controls']['#action'] = url('admin/structure/views/view/' . $view->get('name') .'/preview/' . $view->displayID);
 
     $args = array();
     if (!empty($form_state['values']['view_args'])) {
@@ -80,6 +79,7 @@ protected function actions(array $form, array &$form_state) {
         '#type' => 'submit',
         '#value' => t('Update preview'),
         '#attributes' => array('class' => array('arguments-preview')),
+        '#submit' => array(array($this, 'submitPreview')),
         '#id' => 'preview-submit',
         '#ajax' => array(
           'path' => 'admin/structure/views/view/' . $view->get('name') . '/preview/' . $view->displayID . '/ajax',
@@ -92,4 +92,15 @@ protected function actions(array $form, array &$form_state) {
     );
   }
 
+  /**
+   * Submit handler when Preview button is clicked.
+   */
+  public function submitPreview(&$form, &$form_state) {
+    // Rebuild the form with a pristine $view object.
+    $form_state['build_info']['args'][0] = views_ui_cache_load($this->getEntity($form_state)->get('name'));
+    $this->getEntity($form_state)->renderPreview = TRUE;
+    $form_state['show_preview'] = TRUE;
+    $form_state['rebuild'] = TRUE;
+  }
+
 }
