我正在使用MVC 3编写我的第一个Internet应用程序,但是我遇到了将数据绑定到Webgrid的问题。我使用存储过程提取数据并将其存储在模型中的数据表中。我无法使用数据表直接绑定,所以我将它转换为EnumerableRowCollection,但我似乎无法让它工作。
我已经看到了他们列出模型中每个字段的示例,我认为这是一种非常荒谬的方式。此外,根据他们选择查看的内容和他们看到的顺序,为此报告或动态返回的字段。
在我的模特中:
namespace ShipStatReportsModels.Models
{
public class ShipStatData
{
public EnumerableRowCollection GetReportData()
{
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
try
{
using (SqlConnection _SqlConnection = new SqlConnection(ConfigurationManager.AppSettings["ADONETHorizoninetuser"]))
{
using (SqlCommand cmd = new SqlCommand("UP_ShipStatReports_DataPresentation", _SqlConnection))
{
cmd.CommandTimeout = 120;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Contact_id", 43135);
cmd.Parameters.AddWithValue("@Contact_Server_ID", 17);
cmd.Parameters.AddWithValue("@Report_Id", 1);
da.SelectCommand = cmd;
da.Fill(dt);
}
}
}
catch (Exception ex)
{
throw ex;
}
return dt.AsEnumerable();
}
}
}
在我的收藏中:
public ActionResult Reports()
{
ShipStatData modelObject = new ShipStatData();
EnumerableRowCollection resultSet = modelObject.GetReportData();
return View(resultSet);
}
在我看来:
@{
ViewBag.Title = "Reports";
}
@model ShipStatReportsModels.Models.ShipStatData
@{
var Grid = new WebGrid(@Model);
}
<h2>Reports</h2>
<div>
@Grid.GetHtml(
tableStyle: "grid",
headerStyle: "head",
alternatingRowStyle: "alt"
)
)
</div>
但是我收到以下错误:
编译错误 描述:编译服务此请求所需的资源时发生错误。请查看以下特定错误详细信息并相应地修改源代码。
编译器错误消息:CS1502:'System.Web.Helpers.WebGrid.WebGrid的最佳重载方法匹配(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,string,int,bool,bool, string,string,string,string,string,string,string)'有一些无效的参数
任何想法都将不胜感激。谢谢!