2017-11-22 20 views
-3

MVCのビューでSelectListのからdatavaluefield取得する方法さて、とき私の見解は、私は、MVCコントローラここ</p> <p>にSelectListのからデータをバインドしている

@using (Html.BeginForm("FilterImage", "Glimpses", FormMethod.Post, new { enctype = "multipart/form-data" })) 
{ 
    @Html.DropDownList("YearList", ViewBag.YearListName as SelectList, "Select Year") 
} 

私のコードここ

var getYear = db.yearMaster.OrderBy(y => y.Year).ToList(); 
SelectList yearList = new SelectList(getYear, "YearID", "Year"); 
ViewBag.YearListName = yearList; 

されています私は、選択した項目に関連するdatavalueフィールドを渡したいときにFormMethod.Postメソッドからデータを送信します。

より明確に、

のために元のためyearlistの3項目があるみましょう:私はその時点で2011から2012を選択したときに

value itemname 
1  2011-2012 
2  2012-2013 
3  2013-2014  

は今、私はその値をしたいが1つまり私がしたいですその値を@Html.Hidden();タイプに格納します。

ありがとうございます。

+0

SELECTがフォーム内にある限り、値の属性値の値を取得します。なぜ隠れた入力にそれを保存したいのですか?あなたが他のアイディアを持っていればそれを共有してください、それは 'YearList'フォーム項目 – Shyju

+0

で利用可能になります。年式のフォームアイテムから選択する方法 –

+0

あなたの問題はまだ分かりません。あなたは何をしようとしていますか?選択したオプション値を取得する場所httpポストアクションメソッドでYearListというパラメータを使用すると、フォームが送信されるときに選択されたオプション値が取得されます。 – Shyju

答えて

0

コードでは、name属性値がYearListに設定されたSELECT要素がレンダリングされます。つまり、フォームにを送信すると、選択したオプション値がフォームアイテムキーYearListで利用可能になります。そのため、アクションメソッドで同じ名前のパラメータを使用すると、その値が取得されます。 1. すなわち

[HttpPost] 
public ActionResult FilterImage(int yearList) 
{ 
    // You have the value in yearList param now 
    // to do : return something 
} 

私はその時点で2011から2012を選択したときに、今私は、その値をしたい私は(@ Html.Hiddenにその値を格納したい);タイプ

この意味がありません。 @Html.Hidden()は、隠された入力要素をレンダリングするヘルパーメソッドです。あなたは何かを得るためにメソッドを呼び出す、メソッドにいくつかの値を格納することはできません!

ドロップダウンの選択値を隠し要素に設定しようとしている場合は、それを行うにはjavascriptを使用する必要があります。ここでは、jQueryのval()メソッドを使用した例を示します。

$(function(){ 

    $("#YearList").change(function(){ 

     $("#yearID").val($(this).val()); 
     alert("The value of yearID input is "+ $("#yearID").val()); 
    }); 

}); 

このコードは、ページ内のID yearIDと入力要素に選択されたオプションの値を設定します。

関連する問題