【发布时间】:2016-07-15 18:57:49
【问题描述】:
我在页面上有一个 MVC WebGrid,我的网格上每行都有一个选择链接。在同一个视图中,我想获取与 WebGrid.SelectedRow 对象关联的模型对象并在视图中使用它。
我发现的每个访问SelectedRow 对象的示例都提供了有关如何使用该对象将对象传递到另一个视图/部分视图的说明。就我而言,我想从与 WebGrid 相同的视图中访问此对象。
这里是一些通用的示例代码,带有与错误相关的 cmets。
@{
var grid = new WebGrid(dataCollection)
@grid.GetHTML(columns: "ID", "User ID"),
grid.Column("UserName","Name"),
grid.Column("", format: @<text>@item.GetSelectLink("Edit")</text>)
}
<!-- FURTHER DOWN IN MY MARKUP //-->
<div class="widget">
@if(grid.HasSelection)
{
var obj = @grid.SelectedRow;
//The example below reports the following error when
//navigating to this page:
//
//CS0039: Cannot convert type
// 'System.Web.Helpers.WebGridRow' to
// 'Models.User' via a reference
// conversion, boxing conversion, unboxing conversion,
// wrapping conversion, or null type conversion
usr = obj as User;
if (usr != null) <text>usr.ID</text>;
<!-- FIND A WAY TO PRINT SELECTED CONTENT -->
}
</div>
我也尝试过转换语句,例如((User)@grid.SelectedRow)。在这种情况下,页面会加载,但是当我尝试选择一条记录并点击上述行时,浏览器会给我不同但相似的错误。
如何从与我的 WebGrid 相同的视图中访问和使用 WebGrid.SelectedRow 模型对象?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 webgrid