developer tip

MVC의 ActionLink에서 쿼리 문자열 매개 변수를 전달하는 방법

optionbox 2020. 12. 1. 07:55
반응형

MVC의 ActionLink에서 쿼리 문자열 매개 변수를 전달하는 방법


다음 작업 링크가 있습니다.

<%= Html.ActionLink("Check this", "Edit", "test", 
                     new { id = id }, new { style = "display:block" })%>

data=name쿼리 문자열로 어떻게 포함합니까? 이 같은:

link?data=name

의 네 번째 매개 변수는 Html.ActionLink여러 속성을 가질 수 있습니다.

<%= Html.ActionLink("Check this", "Edit", "test", 
                     new { id = id, data=name }, new { style = "display:block" })%>

이러한 속성은 라우팅을 기반으로 URL에 삽입되지만 속성 이름이 어떤 경로와도 일치하지 않는 경우 URL GET 매개 변수로 추가됩니다.

따라서 표준 경로 {controller}/{action}/{id}가있는 경우 URL이 표시됩니다.

test/Edit/[id]?data=[name] 

위의 코드에서.


이 방법으로 쿼리 문자열 전달

@Html.ActionLink("Delete Record", "Home", "Delete", new { id=Id},null)

위의 코드를 통해 다음과 같은 URL을 얻을 수 있습니다 (ID = 1이라고 가정). /Home/Delete/1

쿼리 문자열에 더 많은 매개 변수를 추가하려면 다음을 수행하십시오.

@Html.ActionLink("Delete Record", "Home", "Delete", new { id=Id, Name=name},null)

위의 코드를 통해 다음과 같은 URL을 얻을 수 있습니다 (Id = 1 및 Name = India).

/Home/Delete/1?Name=India

나는 이것이 일종의 오래된 질문이라는 것을 알고 있지만.

아래 코드가 <a href="/?param=value" />.

<%= Html.ActionLink("Text", "Action", "Controller", new { param=value }, null)%>

나는 당신의 행동에 적어도 하나의 [Route]속성 이 있는지 확인하는 것이 좋습니다 ( [Route("/")]예를 들어 사용 했습니다).

도움이 되었기를 바랍니다.


나는 html.actionlink로 벽에 머리를 부딪히는 것에 지쳤다. 간단한 라우팅 호출에 대해 라우팅하려는 경우 훌륭하게 작동하지만 끝에 간단한 쿼리 문자열을 추가하려는 경우 절대적으로 협조를 거부합니다.

마지막에 ID가 없습니다. "?"로 실제 쿼리 문자열을 추가 할 수 있기를 원합니다.

그래서 어디에서나 Querystring이 필요한 곳에서는 앵커 태그 내에서 url.action을 사용하도록 전환했습니다.

<a href='@url.action("Action","route")?Parameter=Value' >Text for Link Name</a>

적어도 그것은 효과가 있고 나는 매우 간단한 작업이어야하는 것에 대한 두통을 멈출 수 있습니다. 누군가는 그들의 머리를 엉덩이에서 꺼내 MVC 라우팅의 Querystrings에 대해 ActionLink가 제대로 작동하도록해야합니다.

참고 URL : https://stackoverflow.com/questions/3100923/how-to-pass-query-string-parameter-in-actionlink-in-mvc

반응형