2010-12-08 50 views
2

我有2个ViewModels(CreateVM,EditVM)与Create.aspx和Edit.aspx。两者共享名为CreateEditForm.ascx的模板。如何解决传递2视图模型一次在ascx页

现在的问题是在CreateEditForm.ascx模板我需要定义模型,这将是上述ViewModel的一次。假设CreateEditForm.ascx的CreateVM定义比我无法从Edit ActionResult传递EditVM。

如何解决此问题,以便我的CreateEditForm.ascx可以接受两个ViewModels。任何通用风格?

我希望你们能理解我的问题。

回答

0

有几种可能的方法可以采取:

  1. 如果您创建UI和你的编辑界面非常相似(例如,如果他们只通过一个ID字段存在不同),您可以只使用一个viewmodel并做一些条件逻辑,例如if (Model.Id == null)
  2. 如果您创建UI和你的编辑界面非常相似你也可以使用其中实现一个共同的接口,并创建这使得刚刚在常见的,例如领域的局部视图两种不同的ViewModels

    public class SomethingEditViewModel : ISomethingViewModel { }

    public class SomethingCreateViewModel : ISomethingViewModel { }

    public interface ISomethingViewModel { // define the common fields here }

  3. 如果您创建和你的编辑UI的方式是不同的,只使用2周独立的ViewModels,因此2个独立的意见。

+0

怎么样? 。需要示例 – Pirzada 2010-12-08 02:20:01

相关问题