2016-06-21 7 views
0

ユーザーがテキストボックス内に数字を入力し、AJAXを使用して、ユーザーが入力した年齢未満のすべてのアーティストのレコードを表示するようにします。 。 (AjaxとMVCを使用してTextBoxにパラメータを渡す

public PartialViewResult GetByAgeLessThan(int age) 
     { 
      List<Artist> list = ope.ArtistLessThanAge(age); 
      return PartialView("GetByAgeLessThan", list); 
     } 

これは私のアーティスト・インデックス・ビュー: 私の疑問は、私は数が私のコントローラクラス

コントローラクラスの内部するPartialViewResult方法にアヤックスを使用して、テキストボックスに入力された渡す方法がわからないということですAjaxを使用してその結果を表示したい)。私の大きな疑念はここにあります。テキストボックスの中に入力された数字を私のコントローラ内のPartialViewResultに渡すために何をすべきですか?

@using (Ajax.BeginForm("GetByAgeLessThan", "Artists", new AjaxOptions() 
{ 
    HttpMethod = "GET", 
    UpdateTargetId = "divajax", 
    InsertionMode = InsertionMode.Replace 
})){ 
    <h4>Search</h4> 
    @Html.TextBox("txtAge")   
    <input type="submit" name="Command" value="Search"/> 
    } 
+0

(私は:)をそのパラメータ名を好きではないtxtAgeにあなたのアクションメソッドのパラメータ名を更新することができ、それは次のようになりますPartialViewResultに送信されます。 'return PartialView(" GetByAgeLessThan "、新しいMyPartialViewModel {Age =年齢、List =リスト})' –

答えて

1

かみそりはライン@Html.TextBox("txtAge")を実行するとき、以下の出力

<input id="txtAge" name="txtAge" type="text" value=""> 
をレンダリングするために起こっている:私は送信ボタンを何も起こらない押したとき...このコードで何か間違っがあるはずです

モデルバインドを機能させるには、アクションメソッドのパラメータ名と同じフォームフィールド名が必要です。

ので

@Html.TextBox("age") 

@Html.TextBox("txtAge") 

を変更し、それが正常に動作する必要があります。

それとも、私はリストと年齢とともに、ビューモデルクラスを作成します

+0

それは動作します! 'age'パラメータが 'txtAge'に変更されました:) – AlexGH

関連する問題