Using isGrounded with a RigidBody

So I needed my PlayerCharacter to have a rigidbody, and when using the built in character controller with a rigidbody it creates weird results. So I set out to create a charactercontroller around a rigidbody. This is what I have so far in C#:

using UnityEngine;
using System.Collections;

public class PlayerCharacter : MonoBehaviour {
	
	public CharacterController contoller;
	
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
		
		if(Input.GetKey(KeyCode.W)){
			ForwardMovement ();
		}
		
		if(Input.GetKey(KeyCode.S)){
			BackwardMovement ();
		}
		
		if(Input.GetKey(KeyCode.D)){
			MovingRight ();
		}
		
		if(Input.GetKey(KeyCode.A)){
			MovingLeft ();
		}
		
		if(Input.GetKey (KeyCode.Space)){
			Jump ();
		}
	}
	
	void ForwardMovement (){
		rigidbody.AddForce(transform.forward * 100);
	}
	
	void BackwardMovement (){
		rigidbody.AddForce(-transform.forward * 100);
	}
	
	void MovingRight (){
		rigidbody.AddForce(transform.right * 100);
	}
	
	void MovingLeft (){
		rigidbody.AddForce(-transform.right * 100);
	}
	
	void Jump (){
		rigidbody.AddForce(transform.up * 100);
	}
}

Moving forward, backward, left, and right are all working fine. Using the MouseLook script that on the original charactercontroller works just fine for looking around with the mouse. The problem i’m having is the jump. It goes up just fine and comes down just fine but I can press spacebar whenever and it’ll move up. Is there a way to use charactercontroller variable and then use isGrounded or do I need to do it a different way since it’s a rigidbody? Thanks for any and all help!

I thought you weren’t supposed to use a rigidbody with a CharacterController?

You could use a short raycast downwards: take a look at this question.