c# - 在共享组件中使用接口(interface)作为模型是个好方法吗?

标签 c# asp.net-mvc asp.net-mvc-3

我必须创建共享部分 View Partial1,它将在其他屏幕上使用。 因此,我可以创建接口(interface) IPartialModel1,而不是为共享组件创建特定模型 PartialModel1

然后其他屏幕可以实现 IPartialModel1 就像

BigScreenModel1:IPartialModel1
BigScreenModel2:IPartialModel1

所以在 BigScreen.cshtml 中我可以使用

@Html.Partial("Partial",BigScreenModel1)

以及 BigScreen2.cshtml

@Html.Partial("Partial",BigScreenModel2)

这是好的做法吗?

最佳答案

虽然这种方法可行,但我遇到的问题是,您将部分的 View 模型与包含页面的 View 模型联系起来。

更好的方法是将部分 View 模型作为页面 View 模型的成员,如下所示:

public class BigScreenModel1
{
    public PartialViewModel OtherViewModel { get; set; } 
}

public class BigScreenModel2
{
    public PartialViewModel OtherViewModel { get; set; }
}

然后当然是:

@Html.Partial("Partial", Model.OtherViewModel)

在两个页面上。这将 View 模型彼此解耦。

关于c# - 在共享组件中使用接口(interface)作为模型是个好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13728237/

相关文章:

c# - 使 Controller 方法异步还是保持同步?

c# - 从 XmlWriter.WriteStartElement 中排除命名空间时出现问题

asp.net-mvc - AD FS 2.0 和 WIF、MSIS7001 错误

asp.net-mvc - 在 MVC 中按固定时间表运行 Controller 方法?

c# - 手动调用 ModelState 验证

asp.net-mvc-3 - 为什么在IIS 7.5下部署MVC 3应用程序时出现401.2/访问被拒绝错误?

C# 抽象 Dispose 方法

c# - 有没有办法用 UTC 检查它是否是 DST(夏令时)?

c# - 将 json null 发送到 Controller 会导致包含 0 个元素的列表

.net - Ninject 的 InRequestScope 发生了什么