ASP.NET MVC 5とAPIカスタムルーティング

8298 ワード

-----------------------------------------------------------------
MVC5
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            //   
            routes.MapMvcAttributeRoutes();

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

HomeController
    [RoutePrefix("a/File")]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }
        [Route("About")]
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }

 
------------------------------------------------------------------
API
WebApiConfig
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            //      
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

FileController /// /// , /// [RoutePrefix("api/File")] public class FileController : ApiController { private readonly string _swfTools = WebConfigurationManager.AppSettings["SWFTools"].ToString(); private readonly string _ffMpegTools = WebConfigurationManager.AppSettings["FFmpeg"].ToString(); private readonly string _uploadDomain = WebConfigurationManager.AppSettings["UploadDomain"]; /// /// /// /// /// [HttpGet] [Route("GetByMd5")] public string GetByMd5(string md5) { FilesService filesService = new FilesService(); var dto = filesService.QuerySingle(md5, null); return JsonConvert.SerializeObject(dto); } }