2010-08-19 42 views
0

我在一個視圖中使用強類型的用戶控件。編碼如下:強類型的用戶控件模型綁定不工作在Asp.Net MVC 2.0

這是我查看通話:

<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 調用。

+1

你得到了什麼錯誤信息? – 2010-08-19 14:14:28

+0

它說「ProjectTasks.ascx(14):錯誤CS1026:)預計」。在Html.RenderPartial調用。 – Chinjoo 2010-08-19 14:18:27

回答

1

發現問題。 html.Label不應以「;」結尾。 <%:Html.Label(item.TaskStatus.ToString());%>應該是<%:Html.Label(item.TaskStatus.ToString())%>刪除分號。

這基本上是MVC的問題。

3

你需要得到你的<%:語句的結束擺脫;的:

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

編輯:此外,因爲我注意到你在我之前發佈秒,你發現它,這適用於無論何時您使用<%:<%=語法,而不是Html.Label特定。