例如,我有 3 个具有 Id (int)、Name (string) 和 active (bool) 的模型。对于具有相同属性的这些模型,是否可以只使用一个视图?像通用对象这样的技术?继承?这是为了避免使用相同的 HTML 代码编写多个视图。
问问题
118 次
3 回答
2
您可以创建一个ViewModel。
样品:
public class CustomerViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public bool Active { get; set; }
}
并创建另一个具有如下类型的 ViewModel:
public class CustomersViewModel
{
public CustomerViewModel Customer1 { get; set; }
public CustomerViewModel Customer2 { get; set; }
public CustomerViewModel Customer3 { get; set; }
}
并使用此类型键入您的视图:
@model CustomersViewModel
或者只是使用一个集合来输入你的视图
@model List<CustomerViewModel>
于 2013-04-05T17:14:28.437 回答
1
在视图中,您可以
- 为所有模型指定共享基类并使用它。
- 用作
dynamic
模型 - 拆分共享视图(提取到单独视图)和特定部分。比使用现有模型(如果使用基类/动态模型)或简单地基于特定模型中的数据构建的新模型调用共享子视图。
使用继承提取共享部分的示例。使用Html.Partial呈现共享部分:
class SharedModel { /* Id,...*/ }
class SpecificModel : SharedModel { /* Special... */ }
具体视图:
@model SpecificModel
@Html.Partial("SharedView", Model)
<div>@Model.Special</div>
共享视图:
@model SharedModel
<div>@Model.Id</div>
旁注:如果视图名称与操作名称不匹配,您可以在返回结果时使用View指定视图名称:
return View("MySharedView", model);
于 2013-04-05T17:14:53.697 回答
0
在 ASP.NET MVC4 中,您有机会不为视图定义模型。这意味着将模型的定义留空(不要使用@model MyNamespace.MyClass),然后它将自动使用“动态”作为模型。
问候基督徒
于 2013-04-05T17:55:57.633 回答