在MVC应用程序内部的Web窗体上调用内联函数

时间:2019-05-08 14:43:52

标签: asp.net-mvc webforms

我试图在ListView控件项模板内调用一个函数。该功能可在发生组更改时添加新行。         <ItemTemplate> <%# AddGroupingRowIfParentHasChanged() %> <tr style=""> <td><asp:Label ID="ClauseLabel" runat="server" Text='<%# Eval("Clause") %>' /></td> <td><asp:Label ID="ClauseNameLabel" runat="server" Text='<%# Eval("ClauseName") %>' /></td> <td><asp:Label ID="SortOrderLabel" runat="server" Text='<%# Eval("SortOrder") %>' /></td> <td><asp:LinkButton ID="btnDeleteClause" runat="server" CssClass="btn btn-sm btn-danger" CommandName="DeleteClause"><i class="fa fa-trash"></i></asp:LinkButton></td> </tr> </ItemTemplate>

我正在使用一个驻留在MVC应用程序内部的Web表单。 该页面曾经是Webform应用程序的一部分,但我希望将其移至新的MVC应用程序中。由于表单的整体复杂性,我想避免将其重新开发为mvc。

问题是我无法打电话给AddGroupingRowIfParentHasChanged()

我在此行遇到的错误是,名称'AddGroupingRowIfParentHasChanged()'在当前上下文中不存在。

我似乎找不到任何解决方法。

2 个答案:

答案 0 :(得分:0)

您应使用@foreach作为数据源,并用诸如此类的剃须刀语法替换服务器控件。

MVC视图引擎在版本高于1.0的剃须刀中不支持<% %>

@foreach(var item in datasource){
<tr style="">
           <td><label>@item.Clause</label></td>
<td><label>@item.ClauseName</label></td>
<td><label>@item.SortOrder</label></td>
<td><button Id="btnDeleteClause" class="btn btn-sm btn-danger" ><i class="fa fa-trash"></i></button></td>
</tr>
}

答案 1 :(得分:0)

当我通过代码进行复制时,这似乎是Visual Studio的问题。我注释掉了这些行,构建了解决方案,然后重新添加了这些行,就可以了。