0

私は使っている

  • MVC3
  • VB.NET と
  • Razor ビューエンジン。

私はWebGrid自分のアプリケーションで遊んでいますが、「failEmList」が存在しないと言っています。

以下は、呼び出し元の関数、ビュー、およびデータを取得するモデルの一部からのコードです。

FailEmailSends は単なるリスト (文字列の) であり、電子メール アドレスの単一エントリを含む行があります。

  Dim vm As New MassEmailVM
  For Each _fail In failEmailSends
      vm.failEmList.Add(_fail)
  Next
  ViewBag.succCount = succCount.ToString
  ViewBag.failECount = failEmailCount.ToString
  Return View(vm)

ビューは次のとおりです。

@Modeltype xxxxxxxxxxxxx
@Code
ViewData("Title") = "Mass Emails Sent"

End Code


<table>
<tr><th>Total Sent</th><td>@ViewBag.succCount</td></tr>
<tr><th>Total Fail</th><td>@ViewBag.failECount</td></tr>
<tr><th>Fail Email Addresses</th></tr>
</table>

@code
Dim grid = New WebGrid(Model.failEmList)

End Code


<div id="grid">
@grid.GetHtml(
tableStyle:="grid",
headerStyle:="head",
alternatingRowStyle:="alt",
columns:=grid.Columns(
    grid.Column("failEmList", "Email List")
    ))
</div>

ビュー モデルの関連部分:

Private _failEmList As New List(Of String)
Public Property failEmList() As List(Of String)
    Get
        Return _failEmList
    End Get
    Set(ByVal value As List(Of String))
        _failEmList = value
    End Set
End Property

これが次のエラーをスローしている理由についてのアイデア:

  System.InvalidOperationException was unhandled by user code
  Message=Column "failEmList" does not exist.
  Source=System.Web.Helpers
  StackTrace:
   at System.Web.Helpers.WebGridRow.get_Item(String name)
   at System.Web.Helpers.WebGrid.GetTableBodyHtml(IEnumerable`1 columns, String rowStyle, String alternatingRowStyle, String selectedRowStyle)
   at System.Web.Helpers.WebGrid.Table(String tableStyle, String headerStyle, String footerStyle, String rowStyle, String alternatingRowStyle, String selectedRowStyle, String caption, Boolean displayHeader, Boolean fillEmptyRows, String emptyRowCellValue, IEnumerable`1 columns, IEnumerable`1 exclusions, Func`2 footer, Object htmlAttributes)
   at System.Web.Helpers.WebGrid.GetHtml(String tableStyle, String headerStyle, String footerStyle, String rowStyle, String alternatingRowStyle, String selectedRowStyle, String caption, Boolean displayHeader, Boolean fillEmptyRows, String emptyRowCellValue, IEnumerable`1 columns, IEnumerable`1 exclusions, WebGridPagerModes mode, String firstText, String previousText, String nextText, String lastText, Int32 numericLinksCount, Object htmlAttributes)
   at ASP._Page_Views_Admin_MassEmailsSent_vbhtml.Execute() in C:\Users\Skindeep\Documents\Visual Studio 2010\Projects\xxxxxxxxxx\Views\Admin\MassEmailsSent.vbhtml:line 21
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
   at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
   at System.Web.WebPages.StartPage.RunPage()
   at System.Web.WebPages.StartPage.ExecutePageHierarchy()
   at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
   at System.Web.Mvc.RazorView.RenderView(ViewContext viewContext, TextWriter writer, Object instance)
   at System.Web.Mvc.BuildManagerCompiledView.Render(ViewContext viewContext, TextWriter writer)
   at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResult(ControllerContext controllerContext, ActionResult actionResult)
   at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1c.<InvokeActionResultWithFilters>b__19()
   at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
   InnerException: 
4

3 に答える 3

1

次のことを試してみてください。

@Code
    Dim grid = New WebGrid(Model.failEmList)
End Code

<div id="grid">
    @grid.GetHtml(
        tableStyle:= "grid",
        headerStyle:= "head",
        alternatingRowStyle:= "alt",
        columns:= grid.Columns(
            grid.Column(format:= Function(item) item, header:= "Email List")
        )
    )
</div>
于 2012-08-07T05:37:36.367 に答える
0

これを試して

@grid.GetHtml(
 columns: new[] {
    grid.Column(format: (item) => item)
}
)
于 2012-08-07T05:26:26.957 に答える