我绝不懒惰,但在我的第一个 MVC 项目中,我们当前的 sprint 已经逾期 2 天,所以我一直在使用添加视图向导来生成强类型视图,但现在我已经开始使用 ViewData 类作为查看模型,向导生成 ViewDataBase 的字段,而不是我派生的 ViewData。
我认为派生的 ViewData 是由工厂在运行时构建的,并假设这就是为什么设计器/向导只能给我基类属性,但是我能做些什么呢?
我绝不懒惰,但在我的第一个 MVC 项目中,我们当前的 sprint 已经逾期 2 天,所以我一直在使用添加视图向导来生成强类型视图,但现在我已经开始使用 ViewData 类作为查看模型,向导生成 ViewDataBase 的字段,而不是我派生的 ViewData。
我认为派生的 ViewData 是由工厂在运行时构建的,并假设这就是为什么设计器/向导只能给我基类属性,但是我能做些什么呢?
教授,
这是我尝试过的(VS 2010,MVC2):
public class ViewDataBase
{
public int ID { get; set; }
public string Name { get; set; }
}
public class CustomerViewData : ViewDataBase
{
public string Address { get; set; }
}
右键单击我的操作并使用 CustomerViewData 创建一个强类型的详细信息视图。生成以下内容:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<MyApplication.Models.CustomerViewData>" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Index</title>
</head>
<body>
<fieldset>
<legend>Fields</legend>
<div class="display-label">Address</div>
<div class="display-field"><%: Model.Address %></div>
<div class="display-label">ID</div>
<div class="display-field"><%: Model.ID %></div>
<div class="display-label">Name</div>
<div class="display-field"><%: Model.Name %></div>
</fieldset>
<p>
<%: Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) %> |
<%: Html.ActionLink("Back to List", "Index") %>
</p>
</body>
</html>