2009-06-11 6 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は逆に進みます。

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

を次にcontactIdを取るためにあなたの行動の署名を変更します:

が含まれるようにJqGridにお電話を変更

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

私はタイプで推測。 intの代わりに実数型を使用します。

+0

contactIは文字列にエンコードされたGuidです。文字列のcontactIdが署名に含まれている場合、次の文字列値を取得します。 "[object HTMLInputElement]" 私は、要素自体ではなく、jQuery( '#contactId')要素の値を取得する必要があると推測します。残念ながら、私はjQuery/JavaScriptを完全に新しくしており、それを行う方法はわかりません! –

+1

postData:{contactId:jQuery( '#contactId')。val()}を使用して、Guidの文字列表現を取得する必要があります。どうもありがとう。 –

+2

文字列 - > Guidを変更すると、MVCバインディングによって変換されます。 –