[asp.net]获得方法冲突没有得到解决的 webapi

发布时间: 2016/11/12 6:18:44
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我在 MoviesController 的 webapi get 方法是

// GET api/movies
        /// <summary>
        /// Returns the sorted list of movies
        /// </summary>
        /// <returns>Collection of Movies</returns>
        public IEnumerable<Movie> Get()
        {
            return repository.GetMovies().OrderBy(c => c.Title);
        }

        /// <summary>
        /// Returns an individual movie
        /// </summary>
        public Movie Get(int movieId)
        {
            var movie = repository.GetMovieById(movieId);
            if (movie == null)
            {
                throw new HttpResponseException(HttpStatusCode.NotFound);
            }
            return movie;
        }

和 WebApiConfig.cs 是

public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();

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

我面临的问题是每次被调用 get ()。获取与 Id 方法不被调用。我有尝试过各种解决方案上这么说,但它不为我工作。

解决方法 1:

做一个更多自定义路由如图所示︰

config.Routes.MapHttpRoute(
     name: "MyRoute",
     routeTemplate: "api/{controller}/{action}/{movieId}",
     defaults: new { movieId = "0" }  //instead of default movieid '0' you can specify as per your requirement.
   );
官方微信
官方QQ群
31647020