How to make player not fall during dash

I am trying to make it so that when the player dashes, he does not fall (in other words, during the dash, he should not fall to the ground).

public class PlayerMovement : MonoBehaviour
{
#region Variables
private float currentSpeed;
private float currentJumpForce;

bool dashInProgress = false;

public float walkSpeed = 20f;
public float runSpeed = 35f;
public float dashSpeed = 200f;

public float walkJumpForce = 40f;
public float runJumpForce = 50f;
public float gravity = 130f;

public Vector3 moveDir = Vector3.zero;
public float lockedY;
#endregion

CharacterController controller;

private void Start()
{
    controller = gameObject.GetComponent<CharacterController>();
}

void Update()
{

    if (Input.GetButton("Run") && dashInProgress == false)
    {
        currentSpeed = runSpeed;
        currentJumpForce = runJumpForce;
    }
    else
    {
        if (dashInProgress == false)
        {
            currentSpeed = walkSpeed;
            currentJumpForce = walkJumpForce;
        }
        
    }

    if (controller.isGrounded)
    {

        moveDir = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

        moveDir = Vector3.ClampMagnitude(moveDir, 1);

        moveDir = transform.TransformDirection(moveDir);

        moveDir *= currentSpeed;

        if (Input.GetButtonDown("Jump"))
        {
            moveDir.y = currentJumpForce;
        }
    }

    if (Input.GetKeyDown("c"))
    {
        if (dashInProgress == false)
        {
            StartCoroutine(DashUsed());
        }
    }

    moveDir.y -= gravity * Time.deltaTime;


    //Debug.Log(dashInProgress);
   Debug.Log(currentSpeed);

    controller.Move(moveDir * Time.deltaTime);
}

IEnumerator DashUsed()
{
    dashInProgress = true;
    currentSpeed = dashSpeed;
    yield return new WaitForSeconds(1);
    currentSpeed = walkSpeed;
    dashInProgress = false;
    
   
}

}

Try add this:
if (!dashInProgress) moveDir.y -= gravity * Time.deltaTime; else moveDir.y = 0;