将编辑器标签和输入保持在同一行

时间:2011-10-11 02:43:00

标签: c# asp.net asp.net-mvc

使用MVC 3 @html.EditorForModel,自动生成的模板吐出

<div class="editor-label">....
<div class="editor-field">....
<div class="editor-label">....
<div class="editor-field">....

两个类都向左浮动,以便元素适合水平空间。

当字段列表大约为10时,行有时会在标签和输入之间断开;这看起来很糟糕。 将它们保持在同一条线上的最佳方法是什么?如果我手动编码,我可以将它们包含在另一个div中,例如

<div class="editor-wrap">....
    <div class="editor-label">....
    <div class="editor-field">....

并浮动“editor-wrap”。但是,为了保持不想对每个页面进行手动编码,是否有某种方法可以增强/更改EditorForModel的行为?或者可以使用自定义类在.cshtml(视图)级别完成某些操作吗?

1 个答案:

答案 0 :(得分:1)

您可以完全自定义MVC使用的模板。例如,在Views / Shared / EditorTemplates目录中,您可以创建名为Foo.cshtml的模板(或您正在使用的任何视图引擎)。当您调用EditorForModel时,您可以传递模板的名称(它是其中一个重载的参数)。我推荐这一系列文章来真正理解整个过程:

http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html