1

在我看来,我正在使用如下编辑器模板:

编辑.cshtml

@model NetasCrm.Models.CRM_OPP_DETAILS 

<table class="table table-hover">
<thead>
    <tr>
        <th>Çözüm</th>
        <th>Üretici</th>
        <th>Tarih</th>
        <th>Tutar</th>
        <th>Sil</th>
    </tr>
</thead>
    <tbody>
        @Html.EditorFor(model => model.CRM_SOLUTION_DISTRIBUTION, new { Solutions = ViewBag.Solutions, Vendors = ViewBag.Vendors })
        @Html.HiddenFor(model => model.ID)         
    </tbody>
</table>

它正在工作,但我正在尝试做一些事情(添加 where 子句。)如下所示为我的模型中的某些项目创建编辑器模板。

@Html.EditorFor(model => model.CRM_SOLUTION_DISTRIBUTION.Where(p=>p.AMOUNT != 0), new { Solutions = ViewBag.Solutions, Vendors = ViewBag.Vendors })

我收到以下错误:

模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用。

4

2 回答 2

3

这不是@Html.EditorFor()应该如何使用,错误消息明确说明了这一点。

要渲染你想要的东西,你可以使用Html.Partial(),或者在你的模型中创建单独的属性并移动Where到它的 getter。

于 2013-09-20T06:05:12.037 回答
1

Html.XxxFor需要一个从模型中选择属性的 lambda 表达式。这用于识别将要编辑的模型的属性。

您想要实现的可能是您可以使用编辑器模板来实现的目标。

关于编辑器模板及其实现的有趣文章:

在第二篇文章中,您可以看到,如果您有一个包含要编辑的数据的自定义类,您可以创建一个模板,如果您为其提供正确的名称并将其保存在正确的位置,该模板将自动用于您的编辑器。您可以创建一个具有单个字段的类并将其包含在您的模型中而不是原始属性中。这也允许一次编辑多个属性(声明具有这些属性的类)

其他选项将是自定义 html 助手:

于 2013-09-20T09:17:33.923 回答