我在其中一个视图中使用强类型用户控件。编码如下:
这是我视图中的调用:
<table>
<%
for (int i = 0; i < ((List<string>)ViewData["MyProjects"]).Count; i++)
{
string viewIndex = "MyTasks" + i.ToString();%>
<tr>
<td>
<%Html.RenderPartial("ProjectTasks", ViewData[viewIndex]); %>
</td>
</tr>
<% } %>
</table>
我的用户控件具有以下代码:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<List<Application_Service.DTOs.TaskDTO>>" %>
<%if(Model.Count > 0){ %>
<table>
<tr>
<td>Task Name</td>
<td>Task Status</td>
</tr>
<% foreach (var item in ViewData.Model) {%>
<tr>
<td>
<%:Html.Label(item.TaskName); %>
</td>
<td>
<%:Html.Label(item.TaskStatus.ToString());%>
</td>
</tr>
<%} %>
</table>
<%} %>
问题是我在尝试在用户控件中调用绑定模型时出错。 我不知道这里有什么问题。
错误讯息:
“ProjectTasks.ascx(14):错误CS1026: )预计“。在Html.RenderPartial 调用
答案 0 :(得分:3)
您需要摆脱;
声明末尾的<%:
:
<td>
<%:Html.Label(item.TaskName) %>
</td>
<td>
<%:Html.Label(item.TaskStatus.ToString())%>
</td>
修改:此外,由于我发现您在我之前发布了几秒钟,因此无论何时使用<%:
或<%=
语法,这都适用于{ {1}}具体。
答案 1 :(得分:1)
发现了这个问题。 html.Label不应以“;”结尾。
<%:Html.Label(item.TaskStatus.ToString());%>
应删除<%:Html.Label(item.TaskStatus.ToString())%>
分号。
这基本上是MVC的问题。