0

アプリケーションで Razor で MVC4 を使用しています。私のコントローラーには C# コーディングが含まれており、ビューには cshtml コードが含まれています。私のドロップダウンリストは次のようになります。

@Html.DropDownListFor(x => x.StateName, Model.StateList, "--Please Select--")

リストの選択した値をControllerのViewDataコンポーネントに設定したい。これを行うすべての可能性を教えてください。

4

2 に答える 2

3

選択した値を非表示フィールドに保存し、コントローラーで非表示フィールドの値を取得できます..

.cshtm ファイル

<script language="javascript" type="text/javascript">
 $(document).ready(function () {
    // storing selected value to hidden field
    $("#Selected").val($("#id").val());

    $("#id").change(function () {
        // every time dropdown changes the value will be storing in hidden field
        $("#Selected").val($("#id").val());
    });
)};
</script>

@Html.HiddenFor("Selected")
@Html.DropDownList("id", new SelectList(Model.StateList, "--Please Select--"))

コントローラ...

次のような隠しフィールド値を読み取ることができます..

string str = base.Request["Selected"].ToString()
于 2013-03-08T11:22:55.217 に答える
2

2番目の方法のajax呼び出し。

<script language="javascript" type="text/javascript">
  $(document).ready(function () {
      // storing selected value to hidden field
      $("#Selected").val($("#id").val()); 

      $("#id").change(function () { 
        $.ajax({
           url: "~/ ControllerName/ActionMethodName",
           type: 'POST',
           cache: false,
           data: { Selected: $("# Selected").val() },
           success: function (data) {
             //
           }
         });
  });
  )};
</script>

コントローラ:

private string ActionMethodName (string Selected)
{
  String value = Selected; 
}
于 2013-03-08T11:35:40.277 に答える