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


104

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>

답변:


195

속성 접두사를 사용할 수 있습니다. asp-route- 를 사용하여 경로 변수 이름을 접두사로 .

예:

<a asp-controller="Product" asp-action="GetProduct" asp-route-id="10"> ProductName</a>

2
매개 변수가 여러 개인 경우이 방법으로 모든 것을 추가해야합니까?
엘빈 맘마 도프

40
@ elvin-mammadov, yup,를 사용하여 asp-route-yourParamName예 :asp-route-foo="bar"
Alex

2
@ElvinMammadov asp-route-yourParamName추가 입력 매개 변수에 대한 귀하의 의견 은 매우 도움이되었습니다. 감사.
nam

@Alex 예제는 html을 다음과 같이 생성합니다 <a href="https://stackoverflow.com/Product/GetProduct/10">ProductName</a>.. 질문 : 앵커 태그 도우미를 사용하는 동안 어떻게 매개 변수 값 (예 : 10)을 가져올 수 jquery있습니까? `
nam

3
@nam ASP 도우미 옆에 데이터 속성을 추가 할 수 있습니다. <a asp-route-id="@item.Id" data-id="@item.Id" />다음 ID를 얻으십시오 $('a').attr('data-id'):)
Steen Schütt

18

다음 구문을 적용 할 수 있습니다.

<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에서는 메서드를 장식하는 속성이 필요하지 않지만 링크의 속성을 메서드의 전달 된 매개 변수에 바인딩하는 방법을보다 명확하게 보여줍니다.


대신 나를 위해 /Member/Edit/3/full/12생성/Member/Edit/3?type=full&id=12
Arif

1
@Arif는 왜 그런지 말할 수 없으며 현재 C # 환경에 있지 않습니다 (너무 게으 르기 때문에 시작하지도 않습니다). 그러나 나는 명시 적으로 [FromUrl] 또는 [FromQuery] 등을 명시하고 있는지 여부에 따라 달라지며 , 이는 .NET palatform의 다른 버전간에 다를 수 있으며 / 또는 순수 WebAPI 호출에 대한 상속 클래스에 의존 할 수 있습니다. 뷰와 모든 것이있는 BaseController 의 클래스 와 반대 ). 그냥 손님, NB.
Konrad Viltersten 19

0

그리드 또는 테이블의 링크에 변수 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>

당신의 대답을 설명해 주시겠습니까? 설명이없는 코드 전용 답변은 찬성 또는 삭제되는 경향이 있습니다.
SS Anne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.