如何使用get方法将正确的路由写入REST Api Controller

时间:2015-09-19 08:39:55

标签: c# asp.net-mvc asp.net-web-api

我有MVC Web Api项目。基于这个项目,我创建了REST Api控制器:

   public class ViewConfigFileController : ApiController
    {
        public string Get()
        {
            string result = string.Empty;
            try
            {
                result = File.ReadAllText(System.Web.Hosting.HostingEnvironment.MapPath("~/Config/configData.xml"));
            }
            catch (Exception)
            {
                result = "Error read XML file!";
            }
            return result;
        }
    }

我想创建手动路线:

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

启动应用程序后,我看到错误:找不到应用程序。 那么,我该如何解决呢?

提前致谢。

1 个答案:

答案 0 :(得分:1)

你需要" {controller}"和" {action}"路径配置中的占位符。

尝试将路线配置更改为以下配置。

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