2017-12-08 12 views
0

私は最初のWebアプリケーションを作成しようとしています。私は製品のリストを持っており、商品を名前や価格で並べ替えたい。可能なオプションは<select>タグで、メソッドonchangeを使用して、私のコントローラにparamteresを送信し、製品のリストをソートします。私のプログラムをデバッグするとき、私はparamteresがnull値を送信することを見た。どのようにして私の問題を解決することができますか?オプションIDのビューからコントローラにIDを送信

<p>Sort by:</p> 

<select onchange="location = this.value"> 
    <option value="@Url.Action("SortByString", new { id = "-----" })">-----</option> 
    <option value="@Url.Action("SortByString", new { id = "Name" })">Name</option> 
    <option value="@Url.Action("SortByString", new { id = "Price" })">Price</option> 
</select> 

public ActionResult SortByString(string sort){} 

パラメタソートはnullを送信します。ありがとう。

答えて

0

必要に応じてUrl.Action()の複数の過負荷のいずれかを使用する必要があります。この場合、this articleに指定されている4番目の過負荷を使用できます。

(あなたのURLのカスタムルートを定義したくない場合)だからあなたのコードは正確にあなたがコントローラであなたのアクションメソッドで指定されたパラメータを渡すために、次のように変更にする必要があります

<p>Sort by:</p> 

<select onchange="location = this.value"> 
    <option value="@Url.Action("SortByString", new { sort = "-----" })">-----</option> 
    <option value="@Url.Action("SortByString", new { sort = "Name" })">Name</option> 
    <option value="@Url.Action("SortByString", new { sort = "Price" })">Price</option> 
</select> 

public ActionResult SortByString(string sort){} 
関連する問題