例如,我有3种型号的ID(INT),一个名称(字符串)和有源(布尔)。 这是可能只使用一种观点认为这些模型具有相同属性的? 像普通的物体的技术? 继承? 这是为了避免写有相同的HTML代码多个视图。
Answer 1:
你可以创建一个视图模型 。
对于示例:
public class CustomerViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
}
并创建一种这样的另一个视图模型:
public class CustomersViewModel
{
public CustomerViewModel Customer1 { get; set; }
public CustomerViewModel Customer2 { get; set; }
public CustomerViewModel Customer3 { get; set; }
}
并输入这种类型的你的看法:
@model CustomersViewModel
或者只是使用一个集合输入您的看法
@model List<CustomerViewModel>
看看这个anwser! https://stackoverflow.com/a/694179/316799
Answer 2:
在一个视图中,您既可以
- 指定共享基类的所有型号和使用。
- 用
dynamic
的模型 - 在共享(提取到单独的视图)和特定部分拆分视图。 比呼叫共享副视野与任一现有模型(如果使用基类/动态)的基础上在特定模型数据或仅仅新的模式构成。
与继承提取共享部分的样品。 使用Html.Partial呈现共享部分:
class SharedModel { /* Id,...*/ }
class SpecificModel : SharedModel { /* Special... */ }
SpecificView:
@model SpecificModel
@Html.Partial("SharedView", Model)
<div>@Model.Special</div>
SharedView:
@model SharedModel
<div>@Model.Id</div>
附注:您可以通过返回结果时指定视图名称视图如果视图名称不匹配动作名称:
return View("MySharedView", model);
Answer 3:
在ASP.NET MVC4你有机会不来定义模型的视图。 这意味着离开模型空的定义(不@model MyNamespace.MyClass使用),然后它会自动使用“动态”为模型。
基督教的问候
文章来源: Which is the best way to use multiple models with sames properties and using a unique view?