Answers:
表示逻辑包括为特定视图以正确的方式表示业务数据所需的逻辑和计算。
对于复杂的图形视图,这可能是非常复杂的计算(例如,计算每个饼图的大小和饼图的标签的位置),但是主要特征是它仅计算与当前信息相关的信息视图,并且它不会以任何方式修改业务数据。
对于编辑/创建模式的字段选择是否正确使用表示逻辑尚有争议。在某种程度上,它取决于定制的种类和数量。
例如,如果区别仅仅是标题更改,或者在一种模式下将一个或两个字段显示为只读,那么拥有一个视图并动态选择模式可能是正确的选择。
另一方面,我的第一个反应是,它实际上应该是两个不同的视图,其中公共部分是从第三个文件中导入的(类似于将页眉和页脚添加到视图中的方式)。
在Razor视图中使用一两个@if语句似乎是完全合理的。
他们在Razor中添加了@if-应该使用。
您的代码可以缩短为一个@if:
@if (editing)
{
// some more fields shown in edit mode
}
else
{
// some stuff shown in create mode
}
一种替代方法是使用三个视图:
您可以签出DisplayTemplates和EditorTemplates,这是拆分只读视图和可编辑视图的好方法。
http://www.growingwiththeweb.com/2012/12/aspnet-mvc-display-and-editor-templates.html