【发布时间】:2016-05-16 18:11:09
【问题描述】:
我有一个视图,其中包含列表中的数据,我将其填充到表中。
查看:
@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 值为空。 我需要做的是将 DISTRICT 值输入到控制器中,以便存储过程可以执行。 问题是视图中的每一行都有一个按钮。 这是警告:
'(@District nvarchar(4000))exec getDistrictAndNumber @District' expects the parameter '@District', which was not supplied.
有什么建议吗?任何其他方式也非常受欢迎。
【问题讨论】:
-
渲染的隐藏字段是什么样的,网络监视器对发布的数据显示什么?
-
你的视图是一个集合,所以 post 方法也需要是一个集合。 post 方法应该是
public ActionResult DistrictReport(List<###> model, string submitButton),其中###是您在视图中使用的模型。 (或者可以是public ActionResult DistrictReport(string[] DISTRICT, string submitButton) -
请不要在标题中添加不必要的关键字——这就是标签的用途。
标签: c# asp.net-mvc view controller