想知道通过哪个动作调用的部分视图

时间:2013-09-09 10:48:39

标签: c# asp.net asp.net-mvc partial-views

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

2 个答案:

答案 0 :(得分:0)

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

public bool IsEditMode {get;set;}

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

答案 1 :(得分:0)

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

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

这具有以下优点:

  • 如果您想要为添加和编辑模型添加不同的属性,那么它就是未来的证据
  • 您不是直接在模型上操作,而是在更安全的viewmodel上操作
  • 在你的控制器中很容易断言if(model是EditViewModel)或if(model是AddViewModel)

亲切的问候