IT

URL 동작 매개 변수?

lottoking 2020. 8. 2. 17:14
반응형

URL 동작 매개 변수?


내가 가진 사람들에게

 public ActionResult GetByList(string name, string contact)
 {        
     var NameCollection = Service.GetByName(name);    
     var ContactCollection = Service.GetByContact(contact);           
     return View(new ListViewModel(NameCollection ,ContactCollection));
 }

내가 호출하는 ASPX 페이지에서

 <a href="<%:Url.Action("GetByList","Listing" , new {name= "John"} , new {contact="calgary, vancouver"})%>"><span>People</span></a>

ASPX 코드에 문제가 있습니다. john이라는 이름의 레코드를 번호 있습니다. 그러나 contact = "calgary, vancouver"를 주면 웹 페이지에 오류가 발생합니다.

Url.Action에서 두 개의 매개 변수를 어떻게 호출 할 수 있습니까? 나는 아래를 시도했지만 잘못된 것입니다.

  <a href="<%:Url.Action("GetByList","Listing" , new {name= "John" , contact= " calgary, vancouver" })%>"><span>People</span></a>

다음은 (의 예를 귀하 들어 당신이 닫는 누락 올바른 과부하입니다 }받는 routeValues코드가 예외를 던질 있도록 익명 개체) :

<a href="<%: Url.Action("GetByList", "Listing", new { name = "John", contact = "calgary, vancouver" }) %>">
    <span>People</span>
</a>

기본 경로를 사용 가정하면 다음과 같은 마크 업이 생성됩니다.

<a href="/Listing/GetByList?name=John&amp;contact=calgary%2C%20vancouver">
    <span>People</span>
</a>

GetByList두 매개 변수를 전달하는 컨트롤러 작업을 호출합니다 .

public ActionResult GetByList(string name, string contact) 
{
    ...
}

이것은 MVC 5에서 작동합니다.

<a href="@Url.Action("ActionName", "ControllerName", new { paramName1 = item.paramValue1, paramName2 = item.paramValue2 })" >
    Link text
</a>

문서에서 ParseQueryString 유틸리티를 사용하여 NameValueCollection이라고해도 HttpValueCollection이라는 개인 컬렉션을 리턴 할 수 있습니다. 그런 다음 키를 수동으로 추가하면 HttpValueCollection이 인코딩을 수행합니다. 그런 다음 QueryString을 수동으로 추가하십시오.

var qs = HttpUtility.ParseQueryString(""); 
qs.Add("name", "John")
qs.Add("contact", "calgary");
qs.Add("contact", "vancouver")

<a href="<%: Url.Action("GetByList", "Listing")%>?<%:qs%>">
    <span>People</span>
</a>

참고 URL : https://stackoverflow.com/questions/6278694/url-action-parameters

반응형