使用EditorFor(模型lambda,「viewTemplateName」),我的輸出完全不是預期的。這不會產生任何錯誤,但它是沒有標記的渲染輸出。我究竟做錯了什麼?ASP.NET MVC 2 UI模板顯示沒有標記的數據。怎麼修?
輸出:
HarryTomRichard
預期輸出(我需要弄清楚如何呈現的ID名單[]指標太多,但沒有對這個問題還沒有):
<table>
<tr><td><span><input type="Text" id="Name[0]" value="Harry" /></span></td></tr>
<tr><td><span><input type="Text" id="Name[1]" value="Tom" /></span></td></tr>
<tr><td><span><input type="Text" id="Name[2]" value="Richard" /></span></td></tr>
</table>
我類:
namespace Marcs.Models {
public class Student { public string Name { get; set; } }
public class Classroom { public List<Student> Students { get; set; }
}
我的控制器:
public ActionResult Index() {
var myStudents = new List<Student>();
myStudents.Add(new Student { Name = "Harry" });
myStudents.Add(new Student { Name = "Tom" });
myStudents.Add(new Student { Name = "Richard" });
var myClass = new Classroom {Students = myStudents};
return View(myClass);
}
我的索引視圖:
Inherits="System.Web.Mvc.ViewPage<Marcs.Models.Classroom>" %>
<% using (Html.BeginForm()) { %>
<%= Html.EditorFor(m => m.Students, "Classroom") %>
<input type="submit" value="Save" />
<% } %>
我的課堂模板(注意M =>項,這樣我就可以使用的項目,而不是型號):
Inherits="System.Web.Mvc.ViewUserControl<List<Marcs.Models.Student>>" %>
<table>
<% foreach (Marcs.Models.Student item in Model)
{ %><tr><td><%= Html.EditorFor(m => item, "Student")%></td></tr><%
} %>
</table>
我的學生模板:
Inherits="System.Web.Mvc.ViewUserControl<Marcs.Models.Student>"
%><span><%= Html.Encode(Html.EditorFor(m => m.Name)) %></span>
問題可能是由於您的視圖路徑。你能發佈所有這些文件的路徑嗎? – jfar
哇。是的,就是這樣。寫下來作爲答案,我會適當地標記它。謝謝您的幫助。現在開始使用EditorFor呈現複選框和單選按鈕集,然後使用id爲「Classroom [0] _Student [0] _Name」等來呈現列表項。 –