MVC를 처음 사용하고 있으며 제안 된 MemberNames를 반환하기 위해 텍스트 상자에서 자동 완성 기능을 사용하려고합니다. 두 가지 문제점이 있습니다 (Problem1 - 사용자의 초기 텍스트 문자를 컨트롤러로 가져오고 Problem2 - 반환 된 컨트롤러 목록이 텍스트 상자 아래에 표시되도록 함).ASP.NET MVC 4 jQuery 자동 완성 문제
보기 :
@section scripts{
<script type="text/javascript">
$(document).ready(function() {
$("#autocomplete").autocomplete({ source: '@Url.Action("MemberList", "Grievances", new { autocomplete = $("#autocomplete").val() })' });
});
</script>
}
...
<input id="autocomplete">
Problem1 - 나는 @의 Url.Action을위한 3 번째 매개 변수에 넣어하지 않을 경우 위의보기에서, 내 컨트롤러는 매개 변수 값 (웹 사이트의 무리 말할에도 불구하고 null을 수신 자동 완성 기능은 자동으로이 값을 바인딩합니다. 이와 같은 I의 세번째 매개 변수의 하드 코드 넣으면
:
new { autocomplete = "ead" }
는 제어기 파라미터 값 "EAD"수신한다. 위의 코드 블록에있는 코드를 입력하면 세 번째 매개 변수에서 "예기치 않은 문자 '$'가 표시되면서 웹 사이트 오류가 발생합니다.
질문 1 - 자동 완성 텍스트 상자의 값을 컨트롤러로 전달하려면 어떻게해야합니까?
Problem2는 - 여기 내 컨트롤러 코드
public ActionResult MemberList(string autocomplete)
{
var memberNames = (from p in context.Members
where p.MemberName.Contains(autocomplete)
select p.MemberName).Distinct().Take(10);
string content = string.Join<string>("\n", memberNames);
return Content(content);
}
때 나는 하드 코드 위의보기에서 3 매개 변수로, 나는 여기 컨트롤러의 값 얻기 ('EAD'와 같은) 값. 컨트롤러는 데이터베이스에서 적절한 레코드 목록을 검색하고이를 다시보기로 리턴합니다. 그러나 아무것도 텍스트 상자 아래에 표시됩니다. 보기에 필요한 JavaScript 및 CSS 파일이 포함되어 있습니다. 값 목록을 하드 코딩하면 텍스트 상자 아래에 적절하게 표시됩니다. 결과를 얻을 수없는 것은 컨트롤러뿐입니다.
질문 2 - 자동 완성 텍스트 상자에 값 목록이 표시되도록 컨트롤러에서 값 목록을 반환하도록하려면 어떻게해야합니까?
이 두 가지 문제에 대한 도움을 주시면 감사하겠습니다. 자동 완성 기능을 사용하는 진흙탕에서 바퀴를 돌리고있는 것처럼 느껴집니다. 함께 다음 줄에 Q1
당신은 jQuery를 ($("#autocomplete").val()
)과 면도기 (@Url.Action("MemberList", ...
)을 믹싱에
"q"를 문서에서 언급 했으므로 사용하려고 시도했지만 작동하지 않습니다. 나는 당신이 제안한대로 "용어"를 시도하고, 그 작품! Json 팁 또한 효과가있었습니다 (다른 사람이 알아야하는 경우 마지막 행의 "content"로 "memberNames"를 대체해야했습니다). 당신의 도움을 주셔서 감사합니다.나는 당신을 투표 할 것이나, 아직 저를 허용하기에 충분한 명성이 없습니다. – Rexxrally
예, 여러분은'memberNames'에 대해 옳았습니다. 나는 나의 대답을 업데이트했다. 대답이 도움이된다면, 그것을 수락 한 것으로 표시 할 수 있습니다. –
나는 그것을 받아 들였다. 다시 한 번 감사드립니다! – Rexxrally