1
我在页面上有一个MVC WebGrid,每行都有我的网格选择链接。在同一视图中,我希望获取与该对象关联的模型对象并在视图内使用它。如何从同一视图中使用MVC WebGrid的SelectedRow对象?
我发现访问SelectedRow
对象的每个示例都提供了有关如何使用对象将对象传递到其他视图/局部视图的说明。在我的情况下,我想从WebGrid的相同视图中访问此对象。
以下是一些通用示例代码,其中包含与错误相关的注释。
@{
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
模型对象?
这个工作。我不知道“价值”属性。在代码中放置断点,并检查内存中的值暗示着不同的东西。特别是'SelectedRow'对象应该是我的模型对象。谢谢。 – RLH