viernes, 2 de agosto de 2013

Registre esta ruta llamando a una sobrecarga del método MapRoute que tome un parámetro namespaces

Estaba trabajando con un proyecto el cual necesitaba reutilizar y al cambiar el nombre del namespace resulta que al compilar no hay problemas pero al querer mostrar la pagina de inicio me saltaba este error.


Me puse a invetigar y me di cuenta que en  el Mapa de enrutamiento, dentro del archivo RouteConfig estaba la clave para definir un nombre de namespace especifico al cuan apuntar. En el caso de mi archivo como esta definido por defautl por ahi ha de ver quedado indicado el nombre del antiguo namespace MvcPiloto.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace UNE
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Login", action = "IndexLogin", id = UrlParameter.Optional }
              );

            
            
        }
    }
}

Entonces lo que necesitamos hacer para indicar que el namespace con el que trabajaremos es ahora llamado UNE, modificamos algunas lineas y listo.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace UNE
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

           var ns = new string[] { "UNE.Controllers" };
            
                     

            routes.MapRoute(
                  "Default",
                 "{controller}/{action}/{id}",
                  new { controller = "Login", action = "IndexLogin", id = UrlParameter.Optional },
                  null, /*constraints*/
                  ns
               );


            
            
        }
    }
}

 

Lo unico que hacemos es crear un string[] el cual va a contener en  nombre de nuestro namespaces.Controllers y dentro de los parametros con los que inicializamos nuestro MapRoute al final agregamos dos valores mas como se ve, uno de ellos el dato de nuestro nuevo namespace y listo. Compilamos y al correr el proyecto ya no habra problema.






A mi me funciono a alguno le podria servir tambien esta informacion.

2 comentarios:

Compartir