更改由 EditorForModel 生成的 html 布局,而无需 2 个视图



我渲染我的视图模型

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 的力量几乎是无限的:让你的项目向左、向右或交替流动等等;-)也不需要创建两个视图。

相关内容

  • 没有找到相关文章

最新更新