代码之家  ›  专栏  ›  技术社区  ›  Chinjoo

强类型用户控件模型绑定在中不起作用Asp.Net MVC 2.0版

  •  0
  • Chinjoo  · 技术社区  · 14 年前

    我在其中一个视图中使用强类型用户控件。编码如下:

    在我看来,这是一个召唤:

    <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 打电话。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Kelsey    14 年前

    你得把这些东西扔掉 ; <%: 声明:

    <td> 
        <%:Html.Label(item.TaskName) %> 
    </td> 
    <td> 
        <%:Html.Label(item.TaskStatus.ToString())%> 
    </td> 
    

    编辑: 另外,因为我注意到你在我之前的几秒钟发布了你找到它的消息,所以无论何时使用 <%: <%= 语法和不是 Html.Label 具体的。

        2
  •  1
  •   Chinjoo    14 年前

    发现了问题。html.标签不应以“;”结尾。 <%:Html.Label(item.TaskStatus.ToString());%> 应该是 <%:Html.Label(item.TaskStatus.ToString())%> 已删除分号。

    这基本上是MVC的问题。