title: Save button not working in custom module form
body: <p>Created a custom module edit form in Magento Admin using uicomponent, but when I click on save button it redirects to the same edit page and not on the action page I specified when created the save button. It keeps redirecting to the edit page with an undefined parameter in URL after key parameter. Am I missing something?? Following is the code I used to generate the buttons.</p>
  
  <pre><code>&lt;item name="buttons" xsi:type="array"&gt;
              &lt;item name="back" xsi:type="string"&gt;&lt;Vendor&gt;\&lt;Module&gt;\Block\Adminhtml\Listings\Edit\BackButton&lt;/item&gt;
              &lt;item name="delete" xsi:type="string"&gt;&lt;Vendor&gt;\&lt;Module&gt;\Block\Adminhtml\Listings\Edit\DeleteButton&lt;/item&gt;
              &lt;item name="save" xsi:type="string"&gt;&lt;Vendor&gt;\&lt;Module&gt;\Block\Adminhtml\Listings\Edit\SaveButton&lt;/item&gt;
          &lt;/item&gt;
  </code></pre>
  
  <p>SaveButton.php</p>
  
  <pre><code>&lt;?php
  namespace &lt;Vendor&gt;\&lt;Module&gt;\Block\Adminhtml\Listings\Edit;
  
  use Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface;
  
  /**
   * Class SaveButton
   */
  class SaveButton extends GenericButton implements ButtonProviderInterface
  {
      /**
       * @return array
       */
      public function getButtonData()
      {
          $url = $this-&gt;getUrl('properties/listings/update', ['property_id' =&gt; $this-&gt;getId()]);
          return [
              'label' =&gt; __('Save Property'),
              'class' =&gt; 'save primary',
              'data_attribute' =&gt; [
                  'mage-init' =&gt; ['button' =&gt; ['event' =&gt; 'save']],
                  'form-role' =&gt; 'save',
              ],
              'sort_order' =&gt; 90,
              'action' =&gt; $url
          ];
      }
  }
  </code></pre>
  
  <p>GenericButton.php</p>
  
  <pre><code>&lt;?php
  namespace &lt;Vendor&gt;\&lt;Module&gt;\Block\Adminhtml\Listings\Edit;
  
  use Magento\Search\Controller\RegistryConstants;
  
  /**
   * Class GenericButton
   */
  class GenericButton
  {
      /**
       * Url Builder
       *
       * @var \Magento\Framework\UrlInterface
       */
      protected $urlBuilder;
  
      /**
       * Registry
       *
       * @var \Magento\Framework\Registry
       */
      protected $registry;
  
      /**
       * Constructor
       *
       * @param \Magento\Backend\Block\Widget\Context $context
       * @param \Magento\Framework\Registry $registry
       */
      public function __construct(
          \Magento\Backend\Block\Widget\Context $context,
          \Magento\Framework\Registry $registry
      ) {
          $this-&gt;urlBuilder = $context-&gt;getUrlBuilder();
          $this-&gt;registry = $registry;
      }
  
      /**
       * Return the synonyms group Id.
       *
       * @return int|null
       */
      public function getId()
      {
          $data = $this-&gt;registry-&gt;registry('property_data');
          //return $contact ? $contact-&gt;getId() : null;
          return $data['property_id'];
      }
  
      /**
       * Generate url by route and parameters
       *
       * @param   string $route
       * @param   array $params
       * @return  string
       */
      public function getUrl($route = '', $params = [])
      {
          return $this-&gt;urlBuilder-&gt;getUrl($route, $params);
      }
  }
  </code></pre>
  
  <p>Thanks in advance</p>