[asp.net] Url.Action 매개 변수?

컨트롤러를 나열하면

 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"내가을 주면 웹 페이지가 오류가 발생합니다.

.NET Framework에서 두 개의 매개 변수를 어떻게 호출 할 수 있습니까 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>


답변

여기에 또 다른 간단한 방법이 있습니다.

<a class="nav-link"
   href='@Url.Action("Print1", "DeviceCertificates", new { Area = "Diagnostics"})\@Model.ID'>Print</a>

@Model.ID매개 변수는 어디에 있습니까?

그리고 여기에 두 번째 예가 있습니다.

<a class="nav-link"
   href='@Url.Action("Print1", "DeviceCertificates", new { Area = "Diagnostics"})\@Model.ID?param2=ViewBag.P2&param3=ViewBag.P3'>Print</a>


답변