ASP.NET MVC 5とAPIカスタムルーティング
8298 ワード
-----------------------------------------------------------------
MVC5
HomeController
------------------------------------------------------------------
API
WebApiConfig
FileController
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);
}
}