2012-07-04 4 views
1

면도기 도우미를 사용하여 사용자가 지정한 텍스트를 검색하기 위해 HTML 도우미를 만들었습니다. 내가 작성한 코드는 다음과 같습니다.검색을 위해 면도기를 사용하여 HTML 도우미 만들기

<script type="text/javascript"> 
    $('#companyName').change(function() { 
     var searchTerm = $(this).val(); 
     @Search(searchTerm); 
    }); 
</script> 

<p>Search For:</p> 
@Html.TextBox("companyName", Model) 

@helper Search(string searchTerm) 
{ 
    if (searchTerm !="" || searchTerm != null) 
    { 
     @searchTerm; 
    } 
    else 
    { 
     @searchTerm.Substring(0, 7)<text>...</text> 
    } 
    } 

여기서는 searchTerm에 텍스트 상자의 값을 전달하려고합니다. 내가 어떻게 할 수 있니?.

+4

html 도우미는 서버 측에서 작동합니다. JavaScript는 클라이언트 측에서 작동합니다. 당신은 JavaScript에서 html 도우미를 호출 할 수 없다. 그냥 거기에 존재하지 않는다. – archil

+0

나는 템플릿 솔루션을 찾고 있다고 생각한다 ... jquery 템플릿을 찾는다. –

답변

1

면도기 도우미가 서버에서 실행됩니다. 귀하의 경우 클라이언트의 textbox.change() 이벤트에 가입하고 있습니다. 따라서 Razor 도우미가 아닌 클라이언트 측 자바 스크립트 핸들러를 작성해야합니다.

<script type="text/javascript"> 
    $('#companyName').change(function() { 
     var searchTerm = $(this).val(); 
     Search(searchTerm); 
    }); 

    function Search(searchTerm) { 
     // do the search here 
    } 
</script> 

<p>Search For:</p> 
@Html.TextBox("companyName", Model) 
+0

제안 해 주셔서 감사합니다. 하지만 search라는 헬퍼 파일을 만들고 싶습니다. 여기서 인수는 searchTerm이며, 뷰의 텍스트 상자에서 전달됩니다. 저에게 더 나은 솔루션을 제공해 주시겠습니까? –

+0

정확하게 달성하기 위해 무엇을하려고합니까? 사용자가 뭔가를 텍스트 상자로 변경하면 컨트롤러 동작을 호출하려고합니까? –

+0

예, @ Html.Search (argument)와 같은 것을 만들고 싶습니다. 뷰의 인수가 컨트롤러에 전달됩니다. –

관련 문제