2009-06-11 3 views
6

ASP.Net MVC 뷰에 jqGrid가 있습니다. jqGrid 메서드에 추가 매개 변수로 페이지의 숨겨진 텍스트 컨트롤의 값을 전달하는 데 사용하려고합니다.jqGrid 사용자 데이터 사용

나는 다음과 같은 숨겨진 텍스트 필드가 있습니다

<div> 
<%= Html.Hidden("contactId", Model.ContactId) %> 
</div> 

을 나는 같은 것을하고 싶지하십시오있는 jqGrid 호출에

userdata: {contactId : jQuery('#contactId')} 

합니다. 컨트롤러의 조치 방법은 다음과 같은 서명이 있습니다

public ActionResult SearchResult(string sidx, string sord, int page, int rows, object userdata) 

을하지만 그것을 실행할 때, C# 코드에서 userdata 그냥 디버거에서 그것을 검사 할 때 System.Object을 말한다, 나는 내가 anythings를 유용 나갈 수 있다고 생각하지 않습니다 그것의.

내가 잘못 생각한 아이디어가 있습니까?

답변

6

원하는 jqGrid 속성은 postData입니다. UserData는 다른 방향으로 이동합니다.

을 포함하는있는 jqGrid에 전화를 변경

:

postData: {contactId : jQuery('#contactId').val()} 

그런 다음 contactId를를 취할 액션의 서명을 변경

public ActionResult SearchResult(string sidx, string sord, int page, int rows, 
    int contactId) 

나는 유형에서 추측. int 대신 실제 유형을 사용하십시오.

+0

contactId는 문자열에 인코딩 된 Guid입니다. 서명에 contactId 문자열이 있으면 다음 문자열 값을 얻습니다. "[object HTMLInputElement]". 필자는 엘리먼트 자체보다는 jQuery ('# contactId') 엘리먼트의 값을 얻어야한다고 생각한다. 불행히도 나는 완전히 jQuery/JavaScript에 익숙하지 않으며 그것을하는 방법을 모른다! –

+1

알았습니다! postData : {contactId : jQuery ('# contactId') .Val()}을 사용하여 Guid의 문자열 표현을 가져와야합니다. 많은 감사합니다. –

+2

문자열 -> Guid를 변경할 수 있으며 MVC 바인딩이 변환합니다. –