2016-08-15 8 views
0

選択項目から選択項目までの文字列としてonchangeイベント内のいくつかの剃刀コードにこれまでのところほとんど喜んで渡そうとしています。 I上記のコードでonchangeイベントのパラメータとして選択要素から選択した項目値を返します

<div class="sortby"> 
    Sort by: 
    <select id="sortbyselect" onchange ="@HelperAccess.AnalyticsHelper.PostEvent("Sort by selection", "selection", this.value)"> 
     <option value="Recommended">Recommended</option> 
     <option value="PriceHigh">Price: high to low</option> 
     <option value="PriceLow">Price: low to high</option> 
    </select> 
</div> 

(それが現在「this.value」を言う)第paramenterに選択結果を渡したいです。

誰でも助けてもらえますか?

答えて

0

あなたはそのようなサーバーメソッドを呼び出すことはできません。あなたのC#コードはサーバ上で実行され、onchangeイベントはクライアント上で実行されます。クライアント(ブラウザ)はC#メソッド(HelperAccess.AnalyticsHelper.PostEvent)を実行できません。

あなたができることは、選択されたオプションの値を受け入れるためのアクションメソッドを持つサーバーにajax呼び出しを行い、必要な関連メソッドを呼び出して、好きなデータを返します。あなたは

public ActionResult MySort(string id) 
{ 
    // Call your c# helper method here and return something 
} 
にHomeController

でMySortと呼ばれるアクションメソッドを持っていると仮定すると、この

$(function(){ 
    $("#sortbyselect").change(function(){ 
     $.get("MySort","Home",{ id:$(this).val()},function(res){ 
     //do something with the response 
     }); 
    });  
}); 

に変更イベントに

<select id="sortbyselect"> 
    <option value="Recommended">Recommended</option> 
    <option value="PriceHigh">Price: high to low</option> 
    <option value="PriceLow">Price: low to high</option> 
</select> 

と聞きます

関連する問題