문제

일부 모델 정보를 ActionLink에 전달하지만 페이지의 일부 입력 값을 조치에 제공하고 싶습니다. 예를 들어, 다음과 같은 것이 있다면 다음과 같습니다.

<input Name="MyInput" />

<%: Html.ActionLink("MyAction", "MyController", Model.Value);

이 작업이 두 모델 (매개 변수를 통해 전달됨)과 MyInput의 값을 모두 알고 싶습니다. 일반적으로 나는 FormCollection을 사용하지만 제출을하지 않기 때문에이 경우에는 할 수 없습니다.

그렇다면 myInput의 가치를 MyAction에 어떻게 전달할 수 있습니까? MyInput이라는 속성을 내 모델에 추가해야합니까? 그것이 효과가 있다고 가정하면, 더 쉬운 방법이 있습니까, 아니면 모델 수정과 관련이없는 방법이 있습니까?

도움이 되었습니까?

해결책

HTML에서는이 작업을 수행 할 방법이 없으므로 ASP.NET MVC에서는이 작업을 수행 할 수있는 방법이 없습니다.

이것에 대해 선택할 수있는 두 가지 해결책이 있습니다.

  1. javaScript를 사용하여 사용자가 텍스트 상자를 편집 할 때 앵커 태그의 값을 동적으로 변경하여 입력 한 내용을 포함시킬 수 있도록 ASP.NET 라우팅을 사용할 수 없습니다. 서버에서 실행되며 클라이언트 측정이 필요하기 때문입니다.

  2. 링크 대신 양식 제출을하십시오. 이것은 HTML에서 권장되는 방법입니다. 사용자가 데이터를 제출하는 경우 양식에 있어야합니다. 모든 것을 양식 태그로 감고 텍스트 상자와 버튼을 거기에 놓습니다. 양식의 동작을 게시하려는 URL로 설정하십시오.

이것은 내가 넣은 것과 같은 응답입니다 이 질문, 다른 질문의 묻는 사람은 약간 다른 아이디어를 가지고 있었을 것입니다.

다른 팁

나는 아마도 JavaScript를 통해 텍스트 상자의 값을 읽을 수 있다고 결정하고 (아마도 jQuery를 사용했을 것입니다) 익명 유형의 일부로 매개 변수로 전달했습니다 (Model.Value를 사용하는 대신). 그러나 액션 링크 사용에서 양식 제출 및 FormCollection을 사용하는 것으로 전환하기로 결정했습니다. 내가 제작 한 페이지에서 더 의미가있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top