Saltar apartados

Controlador

Crear un controlador y visualizarlo en el navegador

El proceso de crear un controlador es tan sencillo como ponerse encima de la carpeta controller, pulsar el botón derecho, seleccionar Agregar y pulsar sobre Controller…

Crear controlador

Hay que indicar el nombre del controlador, respetando el final del nombre para que sea Controller. Nosotros le vamos a llamar UA a nuestro controlador, con lo que el nombre queda como UAController.

Asignación del nombre del controlador

La opción de crear todos los métodos como son la creación, el borrado, etc. la dejamos desmarcada.

 

Nos generará el siguiente código

Código del controlador generado automáticamente

Nos crea una nueva clase y dentro de ésta un único método Index. Este sería el método de acceso a nuestro controlador. Como comentario nos indica como podremos acceder a nuestro controlador. No indica nada de la acción Index, porque es el método por defecto y no es necesario indicarlo.

El método devuelve un tipo ActionResult que lo debe generar la llamada a View(). Para ver de una forma sencilla como funciona la llamada a controladores, vamos a reemplazarlo por string y vamos a devolver realmente una cadena.

namespace MvcUA.Controllers

{

    public class UAController : Controller

    {

        //

        // GET: /UA/

 

        public string Index()

        {

            return "Acceso al método por defecto";

        }

 

    }

}

Ahora es el momento de probarlo. Si pulsamos el botón ejecutar

Probar aplicación

 

Nos avisa de que no está configurado para trabajar en modo depuración. Seleccionamos la segunda opción, a la que podemos acceder con pulsar Ctrl + F5

 Aviso de que no es posible probar aplicación en modo debug

Nos abrirá el navegador por defecto y si todo funciona bien, os debe dar un error. Esto se debe a que está buscando en el directorio raíz /, que está resevado para un controlador especial denominado Home (aunque luego lo configuraremos para que sea el que hemos creado).

 Error en el navegador

Si añadimos a la dirección /ua (no es sensible a mayúsculas y minúsculas), deberemos visualizar el texto que hemos puesto

 Aplicación en el navegador

Si añadimos /index veremos que el resultado es el mismo

 Aplicación en el navegador con todos los parámetros

 

Métodos de un controlador

Para crear nuevos métodos, deberemos seguir el mismo proceso que antes. Por ejemplo si queremos crear un método que sea listado y que no reciba parámetros, podemos seguir el ejemplo del método anterior.

        //

        // GET: /UA/Listado

 

        public string Listado()

        {

            return "Acceso al método listado";

        }

Antes de lanzarnos a probarlo, hay que aclarar una cosa, ahora sí que es necesario indicar el controlador y luego el método. Lo ponemos como comentario para que no haya confusiones.

Si volvemos al navegador y ponemos la nueva dirección nos dará un error, porque antes hay que generar la solución.

 Generar solución para poder visualizar los cambios

Ahora si escribimos la dirección en el navegador, veremos que se accede al nuevo método.

 Navegar por listados

 

Paso de parámetros a los métodos

Lo normal es que al menos en los métodos de edición o borrado enviemos un parámetro, que puede ser el ID del modelo con el que trabaje el controlador.

En ese caso lo más sencillo es usar el parámetro por defecto que nos ofrece el entorno que no es otro que id,

//

// GET: /UA/Editar/5

 

public string Editar(int id)

{

  return "Acceso al método editar con el parámetro id a " + id.ToString();

}

Generamos la solución (no os olvidéis cada vez) y veremos el resultado

 Navegar con parámetros en la propia URL

Lo primero que nos preguntamos es, ¿qué ha pasado con los parámetros por QueryString?. No hay que preocuparse sigue funcionando igual, y se puede reemplazar y acceder como hasta ahora.

Si ponemos la dirección http://localhost:52314/UA/Editar/?id=2, veremos que el resultado es el mismo.

 Navegar con parámetros GET

Incluso si cambiamos la llamada al método y quitamos el parámetro y lo leemos desde dentro funciona igual.

        //

        // GET: /UA/Editar/?id=1

 

        public string Editar()

        {

            return "Acceso al método editar con el parámetro id a " + Request.QueryString["id"].ToString();

        }

El resultado es el mismo

 Navegar con parámetros GET - probando otra forma de llamada

Aunque ahora ya no podemos usar el primer formato de dirección http://localhost:52314/UA/Editar/2, porque no lo reconocerá como elemento de la colección QueryString.

 Error que se puede producir al navegar con parámetros

Servicio de Informática ASP.NET MVC 2 Framework


Universidad de Alicante
Carretera de San Vicente del Raspeig s/n
03690 San Vicente del Raspeig
Alicante (Spain)

Tel: (+34) 96 590 3400

Fax: (+34) 96 590 3464

Para más información: informacio@ua.es, y para temas relacionados con este servidor Web: webmaster@ua.es

Carretera San Vicente del Raspeig s/n - 03690 San Vicente del Raspeig - Alicante - Tel. 96 590 3400 - Fax 96 590 3464