我渲染我的视图模型
Create.cshtml:
@using (Html.BeginForm("Create","TestTemplate")) {
@Html.EditorForModel()
}
我不喜欢输出内容,因为所有div 都在一个下面。如果我想要一个div向左浮动到另一个div的水平布局怎么办?
当我的 Create.cshtml 视图中没有 html 时,如何使用 EditorForModel() 帮助程序修改此类布局更改?
更新:
为什么我必须创建两个视图。在另一个 EditorTemplate-视图中,我调用 @Html.EditorForModel() 的视图中,我执行所有布局操作,我也可以通过 EditorFor( x => x....) 在第一个视图中执行???这对我来说似乎很奇怪。
你想要创建一个编辑器模板。基本上,在~/Views/Shared
中创建一个名为EditorTemplates
的新文件夹,然后在该文件夹中创建一个具有模型名称的新视图,例如 Template.cshtml
什么的。
调用@Html.EditorForModel()
时,它将使用此视图作为模板。
这个问题很老了,但在我看来,还有另一种方法应该提到。虽然 MVC 不是 MVVM,但尝试在这种模式中多思考一下。由于生成的HTML只不过是页面的内容,因此它将像浏览器中的视图模型一样使用。格式化页面不是HTML的工作。尝试使用 CSS 修改页面的布局,CSS 将用于在浏览器中呈现视图。
只需使用如下所示的 CSS 选择器即可更改表单、输入元素或仅更改特定输入元素的布局:
form { your CSS here }
form input { your CSS here }
form input[name="NameOfInput"] { your CSS here }
在这些日子里,CSS 的力量几乎是无限的:让你的项目向左、向右或交替流动等等;-)也不需要创建两个视图。