0

我正在研究 asp.net MVC-4。我有一个添加或更新具有共同视图的场景,这实际上是一个部分视图。现在我想问一下,我怎么知道我处于添加模式还是更新模式?提前致谢。如果你不清楚我的问题。我会尽力解释

4

2 回答 2

0

您可以创建一个属性来指定传递给该视图的模型中的模式。

public bool IsEditMode {get;set;}

因此,在控制器中,您根据模式在模型上设置此属性,因此它在视图中可用。

于 2013-09-09T10:51:39.783 回答
0

在我看来,只添加一个对模型/类本身没有附加价值的属性是一个糟糕的设计选择。即使属性不会映射到数据库。我会改为使用 viewbag 来区分添加/编辑。

更好的解决方案是使用 ViewModels。您可以拥有一个 EditViewModel.cs 和 AddViewModel.cs,它们都实现了一个通用接口,以便可以将它们传递给同一个 cshtml 视图。

这具有以下优点:

  • 当您希望添加和编辑模型具有不同的属性时,它更具未来性
  • 您不是直接在模型上操作,而是在更安全的视图模型上操作
  • 在您的控制器中,很容易断言 if (model is EditViewModel) 或 if (model is AddViewModel)

亲切的问候

于 2013-09-09T13:18:17.053 回答