   (layout (string/capitalize (dog-mission/translate :edit-view-title (dog-mission/translate entity-class-key)))
           (input-form-panel entity-class-key entity radial-mount-errors :patch (<< "/~(name entity-class-key)/~(:key entity)") :update)))
 
+(defn back-to-index-view
+  [entity-class-key]
+  (layout ""
+          (javascript-tag (<< "$.crossplane.goToWithMethodAndParams('~(to-uri (<< \"/~(name entity-class-key)\"))', 'get', ~(json/write-str (base64-decode (get-in *request* [:params :index-params]))));"))))
+
 ;; Controllers.
 
 (defmulti condition

(defn create-controller
  [entity-class-key uri-parameters]
  (with-db-transaction'
    (save-entity! entity-class-key (database @database-schema) (new-key) new-view)))

(defn edit-controller
  [entity-class-key uri-parameters]

                                         database
                                         (input-property-keys entity-class-key)))]
    (if (not-empty (get-in *request* [:entity-param-errors]))
      (new-or-edit-view-fn entity-class-key (get-in database [entity-class-key entity-key]))
      (do nil  ; TODO: ここに、ユーザー・コードでのデータ更新処理を入れる。
          (if-let [radial-mount-errors (not-empty (get-in (radial-mount/validate @database-schema database) [entity-class-key entity-key]))]
            (new-or-edit-view-fn entity-class-key (get-in database [entity-class-key entity-key]) radial-mount-errors)
            (do (save! @database-schema database *transaction*)
                (back-to-index-view entity-class-key)))))))

(defn delete-entity!
  [entity-class-key database entity-key]
  (save! @database-schema (dissoc-in database [entity-class-key entity-key]) *transaction*)
  (back-to-index-view entity-class-key))

(defn index-controller
  [entity-class-key uri-parameters]
