我对ASP.NET Core 2.0的MVC和剃刀项目非常困惑。 在Visual Studio 2017中,我执行以下操作:
但是当我打开页面的cs代码时,我看到了:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.RazorPages; // <------- MVC?
namespace WebApplication2.Pages
{
public class AboutModel : PageModel
{
public string Message { get; set; }
public void OnGet()
{
Message = "Your application description page.";
}
}
}
如果我选择了一个剃刀专用项目,为什么它仍然引用MVC?
我的问题来自更深层次的问题:我不明白我必须遵循哪些文档!当我看到关于剃刀或MVC的教程时,我不确定它是否适用于这种类型的项目。
答案 0 :(得分:1)
这只是因为Microsoft.AspNetCore.Mvc
命名空间是微软团队决定放置Razor的地方。它并不意味着您的项目使用MVC,只是它使用的某些类位于名称中包含MVC
的名称空间中。
这只是一个猜测,但我相信它可能只是一个历史性的事情。 Razor曾经只是MVC的一部分,所以它在MVC命名空间下,但现在它不需要MVC来实现它们为了兼容性或一致性而留在这里吗?这个问题可能只能由微软的某个人回答: - /