2015-12-20 63 views
0

我只使用核心CLR,這可能是我無法引用它的原因。ASP.net 5 RC1 - 無法引用System.Web.Mvc

我有我的project.json如下:

... 
"frameworks": { 
    "dnxcore50": { 
     "dependencies": { 
     "EntityFramework.Commands": "7.0.0-rc1-final", 
     ... 
     "Microsoft.AspNet.Mvc": "6.0.0-rc1-final" 
     } 
    } 
    }, 
... 

我引用Microsoft.AspNet.Mvc,我認爲應該讓我從我的代碼中引用System.Web.Mvc。但不是。

我的控制器:

using System.Web.Mvc; // "Red underline under "Web" 
using System.Threading.Tasks; 
using Microsoft.AspNet.Mvc; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 

namespace MyNamespace 
{ 
    [Authorize] // Red underlined 
    public class UsersController : Controller 
    { 
     // Code inside not shown because it's not the issue. 
    } 
} 

我試圖使用[授權]屬性在我的Web API控制器之一。


UPDATE。我還需要引用新的軟件包Microsoft.AspNet.Authorization。

大約半個小時後,鼠標懸停在紅色下劃線的[Authorize]屬性上,Intellisense給了我參考Microsoft.AspNet.Authorization的建議。直到現在,它沒有給我這種選擇。

此外,我已經爲ASP.net 5的授權屬性進行了搜索,所有的結果和教程告訴我引用System.Web.Mvc。事實證明,所有這些教程都比較老。

+0

請不要編輯你的問題的解決方案。發佈答案並將其標記爲已檢查,只要寬限期過期,否則問題將永遠標記爲開放,並且計算器會將其提交併顯示在未答覆的問題部分。這是堆棧溢出如何工作 – Tseng

+0

謝謝。我一直認爲只有其他用戶可以將我的回答標記爲已回答。 –

+0

你也可以,但有一個2天(48小時)的寬限期。檢查幫助中心:http://stackoverflow.com/help/self-answer – Tseng

回答

1

基於幸運的發現,我需要Microsoft.AspNet.Authorization才能使用[Authorize]。沒有教程,甚至Google搜索給了我這個信息。

project.json:注意,新的參考Microsoft.AspNet.Authorization;

... 
"frameworks": { 
    "dnxcore50": { 
     "dependencies": { 
     "EntityFramework.Commands": "7.0.0-rc1-final", 
     ... 
     "Microsoft.AspNet.Authorization": "1.0.0-rc1-final", 
     "Microsoft.AspNet.Mvc": "6.0.0-rc1-final" 
     } 
    } 
    }, 
... 

控制器:

// using System.Web.Mvc; // Removed this line - old. Possibly changed as far back as Beta8 
using System.Threading.Tasks; 
using Microsoft.AspNet.Authorization; // Added this line. It's new. 
using Microsoft.AspNet.Mvc; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.EntityFramework; 

namespace MyNamespace 
{ 
    [Authorize] // No longer red-underlined. This is from Microsoft.AspNet.Authorization 
    public class UsersController : Controller 
    { 
     // Code inside not shown because it's not the issue. 
    } 
}