簡體   English   中英

請求匹配多個操作,導致ASP.NET 5 / MVC 6中具有不同參數的操作不明確

[英]Request matched multiple actions resulting in ambiguity for actions with different parameters in ASP.NET 5 / MVC 6

我的項目中有一條簡單的路線:

routes.MapRoute(
      name: "api",
      template: "api/{controller}/{action}");

在我的控制器中,我有兩個動作:

    [HttpGet]
    public string Get(string value)
    {
        return value;
    }

    [HttpGet]
    public string Get(int id)
    {
        return id.ToString();
    }

現在,當我嘗試像api/controller/get?id=1這樣的URL時,它不起作用,因為框架無法區分兩個動作。 據我所知,它在普通的web api中運行得非常好,因為很明顯這個url只根據它的參數匹配其中一個動作。 我做錯了什么或新的MVC6不支持?

我做錯了什么或新的MVC6不支持?

MVC操作選擇器在選擇操作期間不考慮Action的參數。 因此,您不能有兩個操作對應一個路徑模板。 除了例如動作具有不同的動作約束(HttpPost,HttpGet)。

在代碼中選擇動作邏輯

理論上,基於參數的某些動作之間選擇邏輯必須是SelectBestActions方法,但它什么都不做

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM