MSVC4에서 허용되는 링크 생성 방법은 /Controller/Action/parameter
입니까? MapRoute를 사용하여 Html.ActionLink의 동작을 제어하는 방법
routes.MapRoute(
"CommissionPayment", _
"GetDocument/CommissionPayment/{DocID}", _
New With {.controller = "GetDocument", .action = "GetOBDocument"}, _
New With {.DocID = "\d+"} _
)
RouteConfig.vb
에http://localhost:56869/GetDocument/CommissionPayment?DocID=5511972
나는이 있습니다
나는 ...의 .ascx이를 반환
<%=Html.ActionLink(linkText:=doc.DocumentName, _
actionName:="CommissionPayment", _
controllerName:="GetDocument", _
routeValues:=New With {.DocID = doc.DocumentID}, _
htmlAttributes:=Nothing)
%>
을 ...이 있습니다. .. 그리고이 URL은 GetDocument 컨트롤러에서 GetOBDocument 메서드를 올바르게 호출합니다.
http://localhost:56869/GetDocument/CommissionPayment/123123123
그러나 ActionLink 호출로 반환 된 "? DocID = 123"이있는 URL은 아무 것도 호출하지 않습니다. 그것은 잘못된 쓰레기입니다. "자료를 찾을 수 없다". 그것은 CommissionPayment 라우트의/\ d + 패턴과 일치하지 않기 때문에 서버가 CommPayment 액션을 찾지 못하기 때문입니다. 존재하지 않습니다.
분명히 maproute 일을 생략하고 ?DocID
을 사용하거나 직접 URL을 쓸 수 있습니다. 사용자가 파일을 다운로드하고 양식이 다운로드 한 파일 이름을 제어하도록 브라우저를 속일 수 있기 때문에 아마도 후자 일 것입니다.
하지만 여기서 무슨 일이 일어나고 있는지 알고 싶습니다. 경로의 정의에서
와우. 그거였다. 감사. –