【问题标题】:Default generic views from models in Asp Net MvcAsp Net Mvc 中模型的默认通用视图
【发布时间】:2011-05-27 00:18:02
【问题描述】:

在 Asp Net Mvc (3) 中,我希望能够拥有一组使用某种通用视图构建器 (+formbuilder) 制作的默认视图 - 所以我不需要为每个新控制器自己创建它们(以及每次模型更改)。这适用于视图只是具有相同简单结构的许多情况。对于专业视图,我当然会选择手动方法。

我想到了两个选择。

一种是无文件视图,其中所有必要的 html 都直接从控制器生成(如果缺少实际视图替代的视图文件)。

另一个是每个视图替代的共享视图,在路由规则的帮助下设置。

在用于编辑的共享视图文件中(例如),代码可能看起来像这样,构建迭代模型属性的表单:Validating dynamically created fields in ASP.NET MVC

我认为这是 Mvc 中应该开箱即用的东西,也许我错过了什么?否则我会自己动手做点什么。很高兴知道其他人对此的想法(和行为)。

编辑:是的,duh,:-),它最重要的部分确实是开箱即用的,我错过了 - 只需在 /Views/Shared 文件夹中添加一组默认视图,如果缺少特定于控制器的视图。就像错误消息说的那样:

未找到视图“编辑”或其主视图。搜索了以下位置: ~/Views/UserSubCategorySimplified/Edit.cshtml ~/Views/Shared/Edit.cshtml

(是的,脚手架很棒,也是一种妥协——但在模型发生新变化后,必须重新制作所有文件。)

编辑:“为此控制器重新创建所有视图”功能也很好。 (在模型更改或 T4 更改之后)。

谢谢!

乔纳斯

【问题讨论】:

  • 默认值的最大问题是 MVC 完全无法以理智的方式处理选择列表。您的模型可能有一个 int,但您当然不想向用户显示一个 int 字段

标签: asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

您看过 DisplayForModel 和 EditorForModel 方法吗?更多信息在这里:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多