ارتقاء به ASP.NET Core 1.0 - قسمت 8 - فعال سازی ASP.NET MVC
نویسنده: وحید نصیری
تاریخ: ۱۳۹۵/۰۴/۲۲ ۱۴:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
{
"dependencies": {
//same as before
"Microsoft.AspNetCore.Mvc": "1.0.0"
}, public void ConfigureServices(IServiceCollection services)
{
services.AddMvc(); public void Configure(IApplicationBuilder app)
{
app.UseFileServer();
app.UseMvcWithDefaultRoute();
namespace Core1RtmEmptyTest.Controllers
{
public class HomeController
{
public string Index()
{
return "Running a POCO controller!";
}
}
}
using Microsoft.AspNetCore.Mvc;
namespace Core1RtmEmptyTest.Controllers
{
public class AboutController : Controller
{
public IActionResult Index()
{
return Content("Hello from DNT!");
}
}
}
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace Core1RtmEmptyTest.Controllers
{
public class HomeController
{
[ActionContext]
public ActionContext ActionContext { get; set; }
public HttpContext HttpContext => ActionContext.HttpContext;
public string Index()
{
return "Running a POCO controller!";
}
public IActionResult About()
{
return new ContentResult
{
Content = "Hello from DNT!",
ContentType = "text/plain; charset=utf-8"
};
}
}
} Error while building type Microsoft.AspNetCore.Routing.DefaultInlineConstraintResolver
An item with the same key has already been added
private IServiceProvider IocConfig(IServiceCollection services)
{
var container = new Container();
container.Configure(config =>
{
//config.Populate(services); ---> این اضافی است
});
container.Populate(services);
return container.GetInstance<IServiceProvider>();
} <ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild3-final" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
</ItemGroup> <Project Sdk="Microsoft.NET.Sdk.Web">
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="1.1.2" />
</ItemGroup>
</Project> public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
} public enum CompatibilityVersion
{
Version_2_0 = 0,
Version_2_1 = 1,
Latest = int.MaxValue
} services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1) // Give me all of the 2.1 behaviors
.AddMvcOptions(options =>
{
options.AllowCombiningAuthorizeFilters = false; // don't combine authorize filters (keep 2.0 behavior)
options.AllowEmptyInputInBodyModelBinding = false; // shouldn't treat empty input as valid.
}); | هدف | سرویسهای اضافه شده | متد تنظیم سرویسها |
| - مناسب برای توسعهی Web API - اما باید بخاطر داشت که این سرویسها را به صورت پیشفرض اضافه نمیکند:
|
| ()AddControllers |
| شبیه به ASP.NET Core 1.X عمل میکند؛ یعنی سرویس Pages را که مرتبط با Razor Pages است، به صورت پیشفرض ثبت نمیکند. |
| ()AddControllersWithViews |
برای کار با Razor pages بوده و این سرویسها را به صورت پیشفرض به همراه ندارد:
|
| ()AddRazorPages |
dotnet new web
dotnet new webapi
dotnet new mvc
dotnet new webapp
public class WeatherForecastController : ControllerBase