Can anyone tell me what is wrong with my C# portal script?

Hi, I need help with my C# script. The script I pasted below was supposed to make the character teleport to an assigned game object. The problem is, when I tried it, it doesn’t work. I’m using Unity 5.0.2f1 (32-bit) in a windows 7 32 bit computer. I checked the portal gameobject’s “istrigger” checkbox. Here is the script:

using UnityEngine;
using System.Collections;

public class Teleporter_CSHARP : MonoBehaviour 
{
	public GameObject Target_1;
	public GameObject Target_2;

	void OnTriggerEnter(Collider other) {
		switch(other.name)
	   {
        case "Teleporter_1" :
	      gameObject.transform.position = Target_1.transform.position;
		  Debug.Log ("portal_1");
	    break;
	    case "Teleporter_2" :
	      gameObject.transform.position = Target_2.transform.position;
		  Debug.Log ("portal_2");
	    break;
	   }
	}
}

Have you checked that the script is attached to your portal object?

Also, the documentation has an important note:

Notes: Trigger events are only sent if one of the colliders also has a rigidbody attached

doc is found here: Unity - Scripting API: Collider.OnTriggerEnter(Collider)

I am not sure if switch statement supports things like gameObject, but give a try. Why not use a check if it is a right gameObject, not just the name? add variables for these gameObjects and do something like this:

public GameObject Teleporter_1;
public GameObject Teleporter_1;

//Now ontriggerenter begins

switch(other.gameObject){
      case Teleporter_1 :
           gameObject.transform.position = Target_1.transform.position;
           Debug.Log ("portal_1");
         break;
         case Teleporter_2 :
           gameObject.transform.position = Target_2.transform.position;
           Debug.Log ("portal_2");
         break;
}

Try setting the position variables independently.
Like this:

gameObject.transform.position.x = Target_1.transform.position.x ;
gameObject.transform.position.y = Target_1.transform.position.y ;
gameObject.transform.position.z = Target_1.transform.position.z ;

Guys, I made a new script that does the same thing that this script does, plus, it works like a charm. Thank you guys for trying to help me. Here is the script:
using UnityEngine;
using System.Collections;

public class basicPortal : MonoBehaviour
{
public GameObject Player;
public GameObject Destination;

void OnTriggerEnter(Collider other)
{
if (other.gameObject == Player)
{
Player.transform.position = Destination.transform.position;
}
}
}