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 – 你不应该自己声明这个.

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。