2017-09-21 5 views
0

これを行う方法が見つかりませんでした。私のコードの例はここにあります。ASP.NETコアを使用してPOSTによる値のリストを受信

まずビュー

<form id="listForm" action="Index" method="post"> 
<ul> 
@foreach (loop condition) { 
    <li> 
     <input type="hidden" name="val1" value="@item.val1" /> 
     <input type="hidden" name="val2" value="@item.val2" /> 
     ...other items... 
    </li> 
} 
</ul> 
</form> 
<a id="button"></a> 

<script> 
    $(document).ready(function() { 
     $("#button").click(function(e){ 
      $("#listForm").submit(); 
     }); 
    }); 
</script> 

そしてコントローラ

[HttpPost] 
public IActionResult Index([FromForm]ValueModel value) 
{ 
    return Content(value.val1); 
} 

(ここで私は最初のデータ・セットを受け取り、例えばval1: "1", val2: "str1"

そしてモデル

public class ValueModel 
{ 
    public string val1 { get; set; } 
    public string val2 { get; set; } 
} 
(私はこのようなプロセスは、私はJavaScriptを使用してビューに val1val2を変更であることを確認してくださいと私は別の表示]ページで、この件のデータが必要な理由。)

ポイントは

私がリストを持っているということですデータ の(例えば、リクエストボディは

val1: "1" 
val1: "2" 
val2: "str1" 
val2: "str2" 

val1: "1", val2: "str2"ように第一のデータセットとであります10のである第二のデータは )

を設定し、私は(私はコントローラー[FromForm]ValueModel valueのパラメータを作るので、私は唯一のval1: "1" and val2: "str1"を受け取ることができます)

私は本当に深刻な...助けてください必要があるコントローラでこれを受信する必要があります。感謝! ありがとう!

答えて

0
@using (Html.BeginForm("Index", "Home", FormMethod.Post)) 
{ 

<ul> 
@foreach (loop condition) { 
    <li> 
     <input type="hidden" name="val1" value="@item.val1" /> 
     <input type="hidden" name="val2" value="@item.val2" /> 
     ...other items... 
</li> 
} 
</ul> 

@Html.ActionLink("Submit", "", null, new { @id = "submit" }) 

} 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
     $("#submit").click(function() { 
     document.forms[0].submit(); 
     return false; 
     }); 
    }); 
</script> 

は、ここに完全なコードをチェックし、私はアクションリンクを使用していますが

[HttpPost] 
public ActionResult Index(ValueModel person) 
{ 
return Content(value.val1); 
} 

はあなたが修正

を得たホープもボタンを使用することができます
関連する問題