I have a custom for (ss below). 
The problem I am having is that, When I add something and then click on save button, it redirects me to Catalog/Category when the form is located in CONTENT/Element/Frequently Asked Questions and has nothing to do with Catalog/Category.
I don’t know why it would go to Catalog/category and when it redirects to Category page, it also gives me an error (ss below)
Below is my Save.php located under MagebitFaqControllerAdminhtmlQuestionSave.php
<?php
declare(strict_types=1);
namespace MagebitFaqControllerAdminhtmlQuestion;
use MagentoFrameworkExceptionLocalizedException;
class Save extends MagentoBackendAppAction
{
protected $dataPersistor;
/**
* @param MagentoBackendAppActionContext $context
* @param MagentoFrameworkAppRequestDataPersistorInterface $dataPersistor
*/
public function __construct(
MagentoBackendAppActionContext $context,
MagentoFrameworkAppRequestDataPersistorInterface $dataPersistor
) {
$this->dataPersistor = $dataPersistor;
parent::__construct($context);
}
/**
* Save action
*
* @return MagentoFrameworkControllerResultInterface
*/
public function execute()
{
/** @var MagentoBackendModelViewResultRedirect $resultRedirect */
$resultRedirect = $this->resultRedirectFactory->create();
$data = $this->getRequest()->getPostValue();
if ($data) {
$id = $this->getRequest()->getParam('id');
$model = $this->_objectManager->create(MagebitFaqModelQuestion::class)->load($id);
if (!$model->getId() && $id) {
$this->messageManager->addErrorMessage(__('This Add new FAQ form no longer exists.'));
return $resultRedirect->setPath('*/*/');
}
$model->setData($data);
try {
$model->save();
$this->messageManager->addSuccessMessage(__('You saved the Faq.'));
$this->dataPersistor->clear('faqquestionform');
if ($this->getRequest()->getParam('back')) {
return $resultRedirect->setPath('*/*/edit', ['id' => $model->getId()]);
}
return $resultRedirect->setPath('*/*/');
} catch (LocalizedException $e) {
$this->messageManager->addErrorMessage($e->getMessage());
} catch (Exception $e) {
$this->messageManager->addExceptionMessage($e, __('Something went wrong while saving the faq form.'));
}
$this->dataPersistor->set('faqquestionform', $data);
return $resultRedirect->setPath('*/*/edit', ['id' => $this->getRequest()->getParam('id')]);
}
return $resultRedirect->setPath('*/*/');
}
}
The other Save.php located under MagebitfaqUiComponentFormButtonSave.php
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*
* Created By: MageDelight Pvt. Ltd.
*/
namespace MagebitFaqUiComponentFormButton;
use MagentoCmsBlockAdminhtmlPageEditGenericButton;
use MagentoFrameworkViewElementUiComponentControlButtonProviderInterface;
use MagentoUiComponentControlContainer;
class Save extends GenericButton implements ButtonProviderInterface
{
/**
* Get button data
*
* @return array
*/
public function getButtonData()
{
return [
'label' => __('Save'),
'class' => 'save primary',
'data_attribute' => [
'mage-init' => [
'buttonAdapter' => [
'actions' => [
[
'targetName' => 'faq_question_form.faq_question_form',
'actionName' => 'save',
'params' => [false],
],
],
],
],
],
'class_name' => Container::SPLIT_BUTTON,
'options' => $this->getOptions(),
];
}
/**
* Retrieve options
*
* @return array
*/
protected function getOptions()
{
$options[] = [
'id_hard' => 'save_and_close',
'label' => __('Save & Close'),
'data_attribute' => [
'mage-init' => [
'buttonAdapter' => [
'actions' => [
[
'targetName' => 'faq_question_form.faq_question_form',
'actionName' => 'save',
'params' => [true],
],
],
],
],
],
];
return $options;
}
}
and below is my custom form called faq_question_form.xml located under MagebitFaqviewadminhtmlui_component where I have this save button
<?xml version="1.0" encoding="UTF-8"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="provider" xsi:type="string">faq_question_form.faq_question_form_data_source</item>
</item>
<item name="label" xsi:type="string" translate="true">Category Information</item>
<item name="template" xsi:type="string">templates/form/collapsible</item>
<item name="reverseMetadataMerge" xsi:type="boolean">true</item>
</argument>
<settings>
<buttons>
<button name="back" class="MagebitFaqUiComponentFormButtonBack"/>
<button name="save" class="MagebitFaqUiComponentFormButtonSave"/>
</buttons>
<namespace>faq_question_form</namespace>
<dataScope>data</dataScope>
<deps>
<dep>faq_question_form.faq_question_form_data_source</dep>
</deps>
</settings>
<dataSource name="faq_question_form_data_source">
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/form/provider</item>
</item>
</argument>
<settings>
<validateUrl path="catalog/category/validate"/>
<submitUrl path="catalog/category/save"/>
</settings>
<dataProvider class="MagebitFaqModelQuestionDataProvider" name="faq_question_form_data_source">
<settings>
<requestFieldName>id</requestFieldName>
<primaryFieldName>id</primaryFieldName>
</settings>
</dataProvider>
</dataSource>
<fieldset name="general" sortOrder="5">
<settings>
<collapsible>false</collapsible>
<label/>
</settings>
<field name="id" formElement="hidden">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
</item>
</argument>
<settings>
<dataType>text</dataType>
</settings>
</field>
<field name="parent" formElement="hidden">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
</item>
</argument>
<settings>
<dataType>text</dataType>
</settings>
</field>
<field name="path" formElement="hidden">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
</item>
</argument>
<settings>
<dataType>text</dataType>
</settings>
</field>
<field name="level" formElement="hidden">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
</item>
</argument>
</field>
<field name="store_id" formElement="hidden">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
</item>
</argument>
<settings>
<dataType>number</dataType>
</settings>
</field>
<field name="is_active" sortOrder="10" formElement="checkbox">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="source" xsi:type="string">category</item>
<item name="default" xsi:type="number">1</item>
</item>
</argument>
<settings>
<validation>
<rule name="required-entry" xsi:type="boolean">false</rule>
</validation>
<dataType>boolean</dataType>
<label translate="true">Enable Question</label>
</settings>
<formElements>
<checkbox>
<settings>
<valueMap>
<map name="false" xsi:type="string">0</map>
<map name="true" xsi:type="string">1</map>
</valueMap>
<prefer>toggle</prefer>
</settings>
</checkbox>
</formElements>
</field>
<field name="question" sortOrder="30" formElement="input">
<settings>
<dataType>string</dataType>
<label translate="true">Question</label>
</settings>
</field>
<field name="answer" formElement="textarea" sortOrder="40">
<settings>
<dataType>string</dataType>
<label translate="true">Answer</label>
</settings>
</field>
</fieldset>
</form>
My custom module folder structure is is below ss:
How can I get the data from this custom form and save into my custom db table without it redirecting to a random place?
