[c#] ASP.NET Core MVC의 ASP 태그 도우미에 링크 매개 변수를 추가하는 방법

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>


답변