HI, 我想知道是否有其他人在VS2010 MVC 2项目中无法在进行流畅的映射后自动创建强类型视图时出现问题?
当尝试进行映射时,VS2010不会在下拉列表中显示实体,即使我手动将类放入其中,也会自动构建视图。
干杯 丹
答案 0 :(得分:1)
看起来Vs2010不喜欢与Nhibernate 3有关。链接到v2似乎可以让它按照要求工作,即使重新回到v3。
很奇怪
答案 1 :(得分:0)
您是否公开了您的实体类属性?
脚手架引擎使用.NET反射来查看在传递它的类上公开的公共属性,并将根据每种类型添加适当的内容finds
以下适用于我:
namespace Entities
{
public class Page
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
public virtual string Title { get; set; }
public virtual string Description { get; set; }
}
}
public class PageMap : ClassMap<Page>
{
public PageMap()
{
Table("Pages");
Id(x => x.Id);
Map(x => x.Name);
Map(x => x.Keywords);
Map(x => x.Description);
}
}
强类型视图:勾选
查看数据类:Entities.Page
查看内容:列表
然后创建:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<Entities.Page>>" %>
<table>
<tr>
<th></th>
<th>
Id
</th>
<th>
Name
</th>
<th>
Title
</th>
<th>
Description
</th>
</tr>
<% foreach (var item in Model) { %>
<tr>
<td>
<%= Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) %> |
<%= Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ })%> |
<%= Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })%>
</td>
<td>
<%= Html.Encode(item.Id) %>
</td>
<td>
<%= Html.Encode(item.Name) %>
</td>
<td>
<%= Html.Encode(item.Title) %>
</td>
<td>
<%= Html.Encode(item.Description) %>
</td>
</tr>
<% } %>
</table>
<p>
<%= Html.ActionLink("Create New", "Create") %>
</p>