ASP.NET Core 2.0 로 케 이 션 엔진 주소 생 성(번역)
어떻게 ASP.NET Core 2.0 에서 엔진 으로 인터넷 주 소 를 생 성 합 니까?
답안
새 빈 항목 을 만 들 고 Startup.cs 파일 을 수정 하 며 MVC 서비스 와 미들웨어 를 추가 합 니 다.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc(routes =>
{
routes.MapRoute(
name: "goto_one",
template: "one",
defaults: new { controller = "Home", action = "PageOne" });
routes.MapRoute(
name: "goto_two",
template: "two/{id?}",
defaults: new { controller = "Home", action = "PageTwo" });
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
MobileController 컨트롤 러 클래스 추가:
public class MobileController : Controller
{
public IActionResult Index()
{
var url = Url.Action("Index"); // /mobile
return Content($"Mobile/Index (Url: {url})");
}
public IActionResult PageOne()
{
var url = Url.Action("PageOne"); // /mobile/PageOne
return Content($"Mobile/One (Url: {url})");
}
[HttpGet]
public IActionResult PageTwo()
{
var url = Url.Action("PageTwo"); // /mobile/PageTwo OR /mobile/PageTwo/1?
return Content($"(GET) Mobile/Two (Url: {url})");
}
[HttpPost]
public IActionResult PageTwo(int id)
{
var url = Url.Action("PageTwo"); // /mobile/PageTwo/1
return Content($"(POST) Mobile/Two: {id} (Url: {url})");
}
public IActionResult PageThree()
{
var url = Url.RouteUrl("goto_two", new { id = 5 }); // /two/5
return Content($"Mobile/Three (Url: {url})");
}
public IActionResult PageFour()
{
var url = Url.RouteUrl("goto_two", new { q = 5 }); // /two?q=5
return Content($"Mobile/Four (Url: {url})");
}
public IActionResult PageFive()
{
return RedirectToAction("PageSix");
}
public IActionResult PageSix()
{
return Content("Mobile/Six (Mobile/Five will also come here)");
}
}
토론 하 다.우 리 는 프로그램 에서 웹 주 소 를 하 드 코딩 하지 않 고 MVC 의 경로 체 제 를 사용 하여 웹 주 소 를 만 들 수 있다.MVC 는 맵 이 제공 하 는 템 플 릿 을 설정 하 는 데 서 온 모든 정 보 를 가지 고 있 습 니 다.
MVC 는 인터넷 주 소 를 만 드 는 기능 을 제공 하기 위해 IUrlHelper 인 터 페 이 스 를 제공 합 니 다.이것 은 컨트롤 러 기본 클래스,보기,시도 구성 요소 에서 Url 속성 을 공개 함으로써 이 루어 집 니 다.
IUrlHelper 인 터 페 이 스 는 웹 주 소 를 만 드 는 두 가지 중요 한 방법 을 제공 합 니 다.
1.Action:컨트롤 러,방법 과 경로 매개 변수 값 을 제공 하여 웹 주 소 를 생 성 합 니 다.
2.RouteUrl:루트 맵 이름과 루트 파 라미 터 를 제공 하여 주 소 를 생 성 합 니 다.
상기 방법 을 호출 할 때 컨트롤 러 와 경로 파 라 메 터 를 제공 하지 않 으 면 MVC 는 현재 요청 이나 방법 파라미터 에서 가 져 옵 니 다(즉,현재 컨 텍스트 의 환경 변수 에서 가 져 옵 니 다).다음 방법 은 Mobile Controller 컨트롤 러 에 존재 합 니 다.
public IActionResult PageTwo(int id)
{
var url = Url.Action("PageTwo"); // /mobile/PageTwo/1
return Content($"(POST) Mobile/Two: {id} (Url: {url})");
}
루트 매개 변 수 는 익명 의 대상 으로 제공 할 수 있 습 니 다.
public IActionResult PageThree()
{
var url = Url.RouteUrl("goto_two", new { id = 5 }); // /two/5
return Content($"Mobile/Three (Url: {url})");
}
MVC 가 이 값 을 주소 표시 에 표시 할 수 없다 면 이 매개 변 수 는 사이트 의 검색 문자열 로 연 결 됩 니 다.
public IActionResult PageFour()
{
var url = Url.RouteUrl("goto_two", new { id=5, key1 = "value1" }); // /two/5?key1=value1
return Content($"Mobile/Four (Url: {url})");
}
controlBase 클래스 에 편리 한 방법 이 있 습 니 다.RedirectToAction 은 사용자 의 요청 을 컨트롤 러 방법 으로 바 꾸 는 데 사 용 됩 니 다.이 과정 은 클 라 이언 트 에서 이 루어 집 니 다.
public IActionResult PageFive()
{
return RedirectToAction("PageSix");
}
public IActionResult PageSix()
{
return Content("Mobile/Six (Mobile/Five will also come here)");
}
IUrlHeper 를 의존 항목 으로 필요 한 클래스 에 주입 하기 위해 서 는 먼저 Configure Services 에 해당 하 는 서 비 스 를 설정 해 야 합 니 다.
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IActionContextAccessor, ActionContextAccessor>();
services.AddScoped<IUrlHelper>(factory =>
{
var actionContext = factory.GetService<IActionContextAccessor>().ActionContext;
return new UrlHelper(actionContext);
});
services.AddMvc();
}
주:대부분의 경우 IUrlHelper 를 주입 을 통 해 사용 할 필요 가 없습니다.컨트롤 러 때문에 보기에 서 Url 속성 이 공개 되 어 있 습 니 다. 소스 코드 다운로드
원문
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
부트스트랩 ASP.NET에서 설정하는 법1) _Layout.cshtml 內 link로 bootstrap 참조 2) Nuget 패키지에서 BootStrap 다운로드 3) 하단 부트스트랩 예제 사이트 참고해서 프로젝트 개발 참고 :...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.