MVC 3 を使用して初めてのインターネット アプリケーションを作成していますが、データを 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)' には無効な引数があります
どんなアイデアでも大歓迎です。ありがとう!