这是一个 asp.net mvc3 项目。我有两个视图和它们自己对应的视图模型。
Home.aspx 有一个视图模型 HomeVM
HomeChild.aspx 有一个作为 HomeChildVM 的视图模型。
现在 HomeChildVM 是从 HomeVM 派生的,并且还有一些属性在它自己的视图中使用。我的控制器有一个返回 Home 视图的操作方法和另一个返回 HomeChild 视图的操作方法。这两种操作方法都调用一个业务方法,该方法返回一个类型为 HomeVM。然后我的操作方法将相同的返回到 aspx 视图。
return View(objHomeVM);
现在,我不再编写另一个业务方法并重新重复所有代码以返回另一个视图模型类型,即 HomeChildVM,而是将 objHomeVM 的属性一个一个地分配给 objHomeChildVM,如下所示:
objHomeChildVM.prop1 = objHomeVM.prop1;
objHomeChildVM.prop2 = objHomeVM.prop2;
然后返回它:
return View(objHomeChildVM);
有没有比一个一个地分配属性更好的方法呢?我觉得这种方法太原始了,除非这是唯一的方法。
HomeChild.aspx 目前有这个页面指令
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<HomeChildVM>" %>
如果我将其更改为 HomeVM,那么我将无法使用 HomeChildVM 具有的仅特定于 HomeChild.aspx 页面的额外属性。
对此有什么想法吗?
谢谢你的时间...