ASP.NET MVC 1-5에 대한 많은 경험이 있습니다. 이제 ASP.NET Core MVC를 배우고 페이지에서 링크 할 매개 변수를 전달해야합니다. 예를 들어 다음 작업이 있습니다.
[HttpGet]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
태그 도우미를 사용하여이 작업에 대한 링크를 구현하려면 어떻게해야합니까?
<a asp-controller="Product" asp-action="GetProduct">ProductName</a>
답변
속성 접두사를 사용할 수 있습니다. asp-route-
를 사용하여 경로 변수 이름을 접두사로 .
예:
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>
답변
다음 구문을 적용 할 수 있습니다.
<a asp-controller="Member"
asp-action="Edit"
asp-route-level="3"
asp-route-type="full"
asp-route-id="12">Click me</a>
그러면 이와 같은 호출 경로가 생성됩니다.
/ 회원 / 편집 / 3 / 전체 / 12
그러면 아래와 같은 방법으로받을 수 있습니다.
[Route({level}/{type}/{id})]
public IActionResult Edit(int level, string type, int id) { ... }
MVC에서는 메서드를 장식하는 속성이 필요하지 않지만 링크의 속성을 메서드의 전달 된 매개 변수에 바인딩하는 방법을보다 명확하게 보여줍니다.
답변
그리드 또는 테이블의 링크에 변수 ID를 넣으려면 코드 아래의 것을 사용할 수 있습니다.
[HttpGet]
[Route("/Product/GetProduct/{id}")]
public ActionResult GetProduct(string id)
{
ViewBag.CaseId = id;
return View();
}
<a asp-controller="Product" asp-action="GetProduct" asp-route-id="@item.id" >ProductName</a>