asp.net-mvc – webgrid中的Mvc 3 texbox(razor)

简单问:如何让文本框显示值. item.LastName上的代码失败
@model List<Mvc2010_11_12.Models.Employee>
@{
    var grid = new WebGrid(source: Model,defaultSort: "FirstName",rowsPerPage: 3);
}

<div id="grid1">
    @grid.GetHtml(columns: grid.Columns(
        grid.Column("LastName"),grid.Column(format: (item) => Html.TextBox("LastName",item.LastName))
    ))
</div>

解决方法

扩展方法(即Html.TextBox)不适用于动态对象(即项目)……这是c#的限制.

你有几个选择:

format:InputExtensions.TextBox(Html,“Last Name”,item.LastName)//静态调用

格式:Html.TextBox(“Last Name”,(object)item.LastName)//强制转换为非动态对象

格式:& lt; input type =“text”name =“LastName”value =“@ item.LastName”/& gt; //避免扩展

另外,我相信有一个带有“item”参数的固有lambda – 你不应该自己声明这个.

相关文章

这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识...
Some samples are below for ASP.Net web form controls:(fr...
问题描述: 对于未定义为 System.String 的列,唯一有效的值...
最近用到了CalendarExtender,结果不知道为什么发生了错位,...
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence cha...