繁体   English   中英

ASP.NET MVC:是否真的必须为每个动作创建一个视图?

[英]ASP.NET MVC: Do I really have to create one view per action?

如果我的应用程序具有相当粗糙的区域,是否真的需要创建单独的“创建”和“编辑”视图? HTML几乎是相同的。 我希望“编辑”和“创建”动作都呈现“ Show.aspx”视图,但是肯定Resharper 5抱怨没有“显示”动作。

什么是最佳做法?

还有其他选择。 基本上,我有三种选择。

  1. 您既可以创建用户控件,又可以进行轻量级的编辑和创建页面。
  2. 如果使用的是ASP.MVC 2,则可以将布局捕获为视图模型上的属性,并使用新的模板帮助器DisplayFor以及在编辑/创建案例EditorFor / EditorForModel中使用。
  3. 您可以在控制器操作对View的调用中指定视图名称。

您没有“要做”任何事情。 MVC基于约定,这些约定很有价值,但是在技术上并不是必需的。 对于您的情况,我认为避免冗余代码更为重要。

您可能会考虑只使用一个“ Update”操作和一个Update.aspx视图(窗体)。

使用相同的表单进行创建和更新。 唯一的区别是,在创建时,表单将没有对象ID。

提交后,如果“更新”操作看到一个ID,它将加载该对象。 如果没有,它将实例化一个新的。 然后只需从表单更新属性,然后提交(保存)。

因此,一举一动。 更少的代码,并且保持惯例。

您可以指定要使用控制器方法的视图,因此对两个不同的视图没有严格要求。

如果您的“添加”和“编辑”视图看起来完全相同,但是您想让用户清楚他们是要添加还是编辑,则只需将另一个标题推入ViewData,然后在共享视图中显示即可。

您也可以将视图放在“共享”文件夹中,或创建可以共享的.ASCX部分。

去吧。 这是很合理的。 应该始终为前端开发人员提供方便而设置视图,因为控制器可以毫不费力地将数据传递到任何视图。 您不应该仅仅因为ReSharper这样说而感到被限制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM