0

同じ問題で多くのページをグーグル検索しましたが、問題を解決できませんでした。だから私はコントローラにこれを持っています

public IEnumerable<questions> Get()
    {
        return (UOW.Questions.GetAll());
    }

    // GET api/questions/5
    public questions Get(int id)
    {
        return (UOW.Questions.GetById(id));
    }

    ////Basic Questions :: api/questions/basic
    [ActionName("basic")]
    public IEnumerable<questions> GetBasicQuestions()
    {
        return (UOW.Questions.GetBasicQuestions());
    }

    [ActionName("basic")]
    public questions GetBasicQuestionsById(int id)
    {
        return (UOW.Questions.GetBasicQuestions(id));
    }

そしてこれは WEBApiConfig にあります:

public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultController",
            routeTemplate: "api/{controller}"
        );

        config.Routes.MapHttpRoute(
            name: "DefaultControllerId",
            routeTemplate: "api/{controller}/{id}",
            defaults: null,
            constraints: new { id = @"^\d+$" }
        );

        config.Routes.MapHttpRoute(
            name: "DefaultAction",
            routeTemplate: "api/{controller}/{action}"
        );

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

localhost/api/questions と localhost/api/questions/1 を入力しても意味がわかりません

複数のルートエラーが発生します...

ありがとうございました..

4

1 に答える 1

0

ルーティングを次のように変更します。

config.Routes.MapHttpRoute(
    name: "DefaultController",
    routeTemplate: "api/{controller}",
    defaults: new { action = "GET" }
);

config.Routes.MapHttpRoute(
    name: "DefaultControllerId",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { action = "GET" },
    constraints: new { id = @"^\d+$" }
);

config.Routes.MapHttpRoute(
    name: "DefaultAction",
    routeTemplate: "api/{controller}/{action}"
);

config.Routes.MapHttpRoute(
    name: "DefaultActionId",
    routeTemplate: "api/{controller}/{action}/{id}",
    defaults: new { id = RouteParameter.Optional }
);
于 2013-03-27T09:54:17.343 に答える