2016-06-17 25 views
0

私はいくつかのオプションを持つselectタグを持っており、それぞれのオプションは値で指定されています。ビューからコントローラへのドロップダウンリスト値の受け渡し

<select id="dropdown"> 
    <option value="1">Option 1</option> 
    <option value="2">Option 2</option> 
    <option value="3">Option 3</option> 
    <option value="4">Option 4</option> 
</select> 

また、次のJQueryスクリプトがあります。

「アラート」を使用して両方の値をチェックしても問題はありません。今私はビューからコントローラにこれらの値を渡したいと思います。私は選択タグをフォームに入れ、両方の値に '.submit()'を使って試しましたが、それはスクリプトをクラッシュさせます。 JavaScriptとJqueryの初心者であるため、私が '.submit()'を正しく使用しているかどうかはわかりません。要するに、コントローラのメソッドにoptionタグの値をどうやって取得できますか?

EDIT 1

選択タグの形式であり、そして私はこのような提出しようとしてきた:

$(this).val().submit() 

EDITさらに2

、ここにありますコントローラメソッド私は値を取得しようとしています。

[HttpPost] 
public ActionResult Index(string dropdown) 
{ 
    string value = dropdown; 

    //--- conditional logic --- 

    return View() 
} 
+0

あなたは)(あなたが.submitを行うコードを示してもらえますか? – Thargor

+0

'form'を使用して値を送信するか、jQueryを使用しているときに' jQuery.ajax() 'を使用して値をコントローラに送信することができます。 – Jai

+1

Javascriptで選択したオプションを選択する必要はありません。 select要素に名前を追加し、フォームに送信ボタンを追加すると、MVCがそれを見てくれます。最も簡単なのは、select要素と同じ名前の文字列プロパティを含むモデルを作成することです。 select要素で検証を使用する場合は、モデルを通じてDataAnnotationsを使用することをお勧めします。 – MartijnK

答えて

1

<form>

<form method="POST" action="yourControllerUrl/MyAction"> 
    <select id="dropdown" name="dropdownName"> 
     <option value="1">Option 1</option> 
     <option value="2">Option 2</option> 
     <option value="3">Option 3</option> 
     <option value="4">Option 4</option> 
    </select> 
</form> 

にし、コントローラでなければなりませんsubmit()あなたのドロップダウンを使用するには:あなたは、タスクのこの種を行うために、AJAXを使用することができます

public ActionResult MyAction(string dropdownName) 
{   
     // use your dropdown value here 
} 
+0

これは、ボタンを送信する必要がありますか、それとも自動的に行われますか? – Jai

+0

'submit()'を明示的に呼び出すと、送信ボタンは必要ありません。 –

+0

@using(Html.BeginForm( "Action"、 "Controller"、FormMethod.Post){...})フォームにあります。 – ThanksInAdvance

0

var dropDownVal = $("#dropdown").val(); 
$(#dropdown).change(function() { 

    $.ajax({ 
     url : yourControllerUrl/MyAction, 
     type: "POST", 
     data : { 
      dropDown : dropDownVal 
     } 
    }); 

}); 

コントローラでparamsを使用し、 "dropDown"をキーとして値を取得する

0

この方法を拡張するのが最適な方法です:)それが役に立ちます。

モデル

public class Model 
{ 
    public int Id { get; set; } 
    public IEnumerable<Items> items { get; set; } 
} 

ビュー

@model App.Models.Model 

@using (Html.BeginForm("ActionName", "ControllerName")) { 

    @Html.DropDownListFor(x => x.Id, Model.Items) 

    <button type="submit" class="btn btn-info"><i class="fa fa-floppy-o"></i></button> 
} 

コントローラ

public ActionResult ActionName(Model model) 
{ 
    var blah = model.items; 

    return View(model); 
} 
関連する問題