如果我的应用程序中有一个相当粗糙的区域,我是否真的需要创建单独的“创建”和“编辑”视图? HTML几乎是一样的。我想要一个“编辑”和“创建”动作来渲染“Show.aspx”视图,但Resharper 5肯定抱怨没有“显示”动作。
最佳做法是什么?
答案 0 :(得分:1)
还有其他选择。基本上,我有三个选择。
答案 1 :(得分:1)
你没有“做”任何事情。 MVC基于惯例,这些约定很有价值,但这些在技术上并不需要。在您的情况下,我认为避免冗余代码更重要。
您可能会考虑只使用“更新”操作和Update.aspx视图(表单)。
使用相同的表单进行创建和更新。唯一的区别是,在创建时,表单将没有对象ID。
提交后,如果Update操作看到ID,则会加载该对象。如果没有,它会实例化一个新的。然后只需从表单更新属性,然后提交(保存)。
所以,一个动作和一个视图。更少的代码,它保持常规。
答案 2 :(得分:0)
您可以指定希望控制器方法使用的视图,因此没有严格要求拥有两个不同的视图。
如果您的“添加”和“编辑”视图看起来完全相同,但您希望向用户说明它们是否正在添加或编辑,则只需将其他标题推送到ViewData,然后将其显示在共享视图中即可。
您还可以将视图放在“共享”文件夹中,或创建可以共享的.ASCX部分。
答案 3 :(得分:0)
去吧。这很有道理。应始终为前端开发人员设置视图,因为控制器可以将数据传递到任何视图,而无需任何额外的工作。你不应该因为ReSharper这么说而感到受限制。