2016-04-09 16 views
0

私はメディア検索のためのWebアプリケーションを開発しています。私の検索インターフェースでは、このようなものが必要です。ユーザは4つのフィールドを指定し、他のフィールド私はjqueryでこれを行いました。下の画像を参照してください。enter image description hereダイナミックフォームの検索方法

しかし、私の問題は次のとおりです。どのように私はフォームのリストを渡すことができますか?私の行動への価値! ここにあなたが私のコントローラと私の見解のコード(私はちょうど1のためにそれを行う) コントローラーです:

[HttpPost] 
 
     public ActionResult RechercheForm(Recherche FormData) 
 
     { 
 
      
 
      List<Asset> liste = null; 
 
      
 
      
 
      if (FormData.Op == "Like") 
 
      { 
 
       if (FormData.Critere == "Titre") 
 
       { 
 
        liste = bdd.Assets.Where(a => (a.Titre.Contains(FormData.Val1) 
 
                   )).ToList(); 
 
      ViewBag.Val = FormData.Val1; 
 
        return View("Index",liste); 
 
       } 
 
       else 
 
        if (FormData.Critere == "TitreCourt") 
 
        { 
 
         liste = bdd.Assets.Where(a => (a.TitreCourt.Contains(FormData.Val1) 
 
                    )).ToList(); 
 
         return View("Index", liste); 
 
        } 
 

 
      } 
 
      return View("Index"); 
 

 
      
 
      
 
     }

ビュー:

<div class="right-content" style="width: 760px;" > 
 
        <!-- DropListDownData --> 
 
       @{ 
 
        
 
        
 
        Dictionary<string, string> ListCritere=new Dictionary<string, string> 
 
         { 
 
          {"Titre", "Titre"}, 
 
          {"TitreCourt", "TitreCourt"}, 
 
          
 
          // some lines skipped 
 
         }; 
 
        Dictionary<string, string> ListOp = new Dictionary<string, string> 
 
         { 
 
          {"Like", "Like"}, 
 
          {"Sup", "Sup"}, 
 
          {"Inf", "Inf"}, 
 
          
 
          // some lines skipped 
 
         }; 
 
        
 
     
 
           
 
        
 
        } 
 
        
 
        
 

 

 

 
       
 

 
       
 
         @using (Html.BeginForm("RechercheForm", "Recherche",new { ReturnUrl = ViewBag.ReturnUrl },FormMethod.Post, new { @class = "form-inline" })){ 
 
          <button type="submit" class="btn btn-default">Rechecrcher</button> 
 
          <table id="TableRech"> 
 
           <tr> 
 
           <th>Critere</th> 
 
           <th>Opérateur</th> 
 
           <th>Valeur1</th> 
 
           <th>Valeur2</th> 
 
           <th></th> 
 
            
 
           </tr> 
 
           <tr> 
 
           <td><div class="form-group"> 
 
           @Html.DropDownList("Critere", new SelectList(ListCritere, "Key", "Value"),new { @class = "form-control" }) 
 
            
 
          </div></td> 
 
           <td><div class="form-group"> 
 
          
 
           @Html.DropDownList("Op", new SelectList(ListOp, "Key", "Value"),new { @class = "form-control" }) 
 
           
 
          </div></td> 
 
           <td><div class="form-group"> 
 
     
 
           @Html.TextBox("Val1",null,new {id = "Val2", @class = "textbox", style="width:50px;padding-right: 50px; " }) 
 
          </div></td> 
 
           <td> <div class="form-group"> 
 
     
 
           @Html.TextBox("Val2",null,new {id = "Val2", @class = "textbox", style="width:50px;padding-right: 50px; " }) 
 
           
 
          </div></td> 
 
            <td><span class="glyphicon glyphicon-plus-sign" id="Plus" style="width: 15px;" onclick="RechFunctionPlus()" ></span></td> 
 
           
 
           
 
           
 
           </tr> 
 
           
 
          </table> 
 
         } 
 
    </div> 
 
     </div> 
 
<script> 
 
    function RechFunctionPlus() { 
 
     
 
     var table= document.getElementById('TableRech'); 
 
     var tr = document.createElement('tr'); 
 
     table.appendChild(tr); 
 
     var td = document.createElement('td'); 
 
     td.innerHTML='<select class="form-control" id="Critere" name="State"> <!-- some attrs=ibutes skipped --><option value=""></option><option value="Titre">Titre</option><option value="TitreCourt">TitreCourt</option><option value="Type">Type</option></select>'; 
 
     tr.appendChild(td); 
 
     var td2 = document.createElement('td'); 
 
     td2.innerHTML='<select class="form-control" id="Op" name="State"> <!-- some attrs=ibutes skipped --><option value=""></option><option value="Like">Like</option><option value="Inf">Inf</option><option value="Sup">Sup</option></select>'; 
 
      
 
     tr.appendChild(td2); 
 
     var td3 = document.createElement('td'); 
 
     td3.innerHTML='@Html.TextBox("Val1",null,new {id = "Val1", @class = "textbox", style="width:50px;padding-right: 50px; " })'; 
 
     tr.appendChild(td3); 
 
     var td4 = document.createElement('td'); 
 
     td4.innerHTML='@Html.TextBox("Val2",null,new {id = "Val2", @class = "textbox", style="width:50px;padding-right: 50px; " })'; 
 
     tr.appendChild(td4); 
 
     var td5 = document.createElement('td'); 
 
     td5.innerHTML='<span class="glyphicon glyphicon-minus-sign" id="Plus" style="width: 15px;" onclick="RechFunctionMoins()" ></span>'; 
 
     tr.appendChild(td5); 
 
     
 
    } 
 
</script>

私は "Recherche"のリストを作ると思います私はそれを私のアクション "RechercheForm"に渡しますが、私はどうやっていないのですか?例えば

答えて

0

JavaScriptを使用

function sendForm(projectId, target) { 
$.ajax({ 
    url: target, 
    type: 'POST', 
    contentType: 'application/json', 
    data: JSON.stringify({ 
     projectId: projectId, 
     userAccountIds: [1, 2, 3] 
    }), 
    success: ajaxOnSuccess, 
    error: function (jqXHR, exception) { 
     alert('Error message.'); 
    } 
}); 

}

この記事に私を返信用Post JavaScript array with AJAX to asp.net MVC controller

+0

ありがとうを参照してください、私はそれは私が持っている同じ問題ではないと思います! – KaoutarStack

+0

リンクを確認しましたか? ajax呼び出しを使用して、コントローラのアクションに検索値を渡す必要があります。 – ironman

+0

ああ申し訳ありませんが私はそれをチェックしなかった、はい彼はほとんど同じ問題を抱えていますが、とにかく私は自分の問題を解決した、私はできるだけ早く私の質問に答えるつもりです、 – KaoutarStack

関連する問題