2017-05-23 11 views
-2

私は内部にHTML選択タグ付きのMVCフォームを持っています。 selectはJavaScriptから取り込まれます。 フォーム送信で選択したオプションを送信するにはどうすればよいですか?MVCフォームを送信する選択したタグを選択して送信しました

<div class="editor-field"> 
    <select id="authority" name="authority"> 
     <option value="X" /> 
     <option value="Y" /> 
    </select> 
</div> 
:あなたはちょうどあなたがそれを移入したいパラメータに一致するあなたの選択の名前を与える必要が

public ActionResult LoginFromTest(string user, string password, string authority) 

:あなたのアクションメソッドを仮定

@using (Html.BeginForm("LoginFromTest", "Login", FormMethod.Post)) 
{ 
    @Html.ValidationSummary(true, "Login failed. Check your login details."); 
    <div style="margin: 10px;"> 
     <fieldset> 
      <legend>Login</legend> 

      <div class="editor-label"> 
       Username: 
      </div> 
      <div class="editor-field"> 
       <input type="text" name="user" /> 
      </div> 

      <div class="editor-label"> 
       Password: 
      </div> 
      <div class="editor-field"> 
       <input type="password" name="password" /> 
      </div> 

      <div class="editor-label"> 
       Authority: 
      </div> 
      <div class="editor-field"> 
       <select id="authority" /> 
      </div> 

      <input type="submit" value="Log In" /> 
      <br/> 
      @if (!string.IsNullOrWhiteSpace(ViewBag.Error)) 
      { 
       <span style="color: red;">@ViewBag.Error</span> 
      } 
     </fieldset> 
    </div> 
} 

おかげ

+0

'name'属性を使用して、後で' Bind'/'Include'を使用してコントローラのアクションメソッドに送信する選択名を割り当てます。しかし、モデルバインディングで 'DropDownList(For)'を使う方が良いです。 –

+0

[ASP.NET MVCのドロップダウンリスト - 値がポストされていません](https://stackoverflow.com/questions/27514830/dropdownlist-in-asp-net-mvc-value-not-posted) – rolspace

+0

あなたのモデルのプロパティまたはあなたのActionメソッドの引数にマッチする 'name '。その後、通常通りフォームを提出してください – Liam

答えて

0

は何かのように見えます

モデルへのバインディングがモデルに必要な場合:

public class myModel 
{ 
    public string username {get; set;} 
    public string password {get; set;} 
    public string authority {get; set;} 
} 

あなたの行動は、次のようになります。

public ActionResult LoginFromTest(myModel model) 

が、名前は同じまま。 @Html.DropDowListFor@Html.DropDownListヘルパーを使用することもできますが、フラットHTMLを使用すると完全に可能です。

+0

"名前"属性がありませんでした。誤ってid属性を使用しました。ありがとう –

関連する問題