Iリストにデータを含むビューがあります。リストにはテーブルにデータが格納されます。
ビュー:HiddenFor値をビューからコントローラに渡す方法
@using (Html.BeginForm("DistrictReport", "Reports", FormMethod.Post))
{
@for(int i = 0; i < Model.Count; i++)
{
<tr>
<td>
@Html.DisplayFor(model => Model[i].DISTRICT)
@Html.HiddenFor(model => Model[i].DISTRICT)
</td>
<td>
<input type="submit" name="submitButton" value="Show Report 1"/>
<input type="submit" name="submitButton" value="Show Report 2"/>
</td>
</tr>
}
}
そして、ここでは私のコントローラです。
コントローラ:
public ActionResult DistrictReport(string DISTRICT, string submitButton)
{
if (submitButton.Contains("Show Report"))
{
var district = new SqlParameter
{
ParameterName = "District",
Value = DISTRICT
};
enter code here
var list = db.Database.SqlQuery<ReportDistrict>("exec getDistrictNumber @District", district).ToList<ReportDistrict>();
//.....
}
}
私はページショーは、DISTRICTの値がnullであったことを警告し、送信ボタンをクリックしてください。 私がする必要があるのは、ストアドプロシージャを実行できるようにDISTRICT値をコントローラに取得することです。 問題は、ビュー内の各行にボタンがあることです。 ここに警告があります:
'(@District nvarchar(4000))exec getDistrictAndNumber @District' expects the parameter '@District', which was not supplied.
何か提案がありますか?これを行う他の方法も非常に歓迎されています。
をあなたのアクションで単一の変数を使用しますが、ビューにあなたは以下を使用しなければならない理由地区のリストがthatsの存在しています非表示のフィールドのように見えると、ネットワークモニタは、投稿されたデータの表示ですか? – Jasen
あなたのビューはコレクションなので、postメソッドもコレクションである必要があります。 postメソッドは 'Public ActionResult DistrictReport(List <###> model、string submitButton)'でなければなりません。 '### 'はビューで使用したモデルです。 (または、それは 'public ActionResult DistrictReport(string [] DISTRICT、string submitButton)' –
です。タイトルに不要なキーワードを追加しないでください - – slugster