我正在通过python从PHP背景转变为Django开发,主要是为了解决我认为最有意义的MVC(或MVT),尽管在这种模式中我开始注意到很多重复的代码我的看法.
例如,当我登录时,我有关于我想要在每个页面上显示的用户的信息,尽管在使用render_to_response时并且在每个视图中这都是必需的,我必须获取信息并将其传递给render_to_response函数.
我想知道什么是最有效的方法来减少重复代码,这在特定应用程序的所有视图中实际上是必需的.
提前致谢.
由于某种原因,.NET Core (2.1.4) MVC 中的 HiddenFor 帮助程序没有在隐藏输入元素上设置值,尽管它表示的模型属性上存在值。
如果我手动创建隐藏属性并使用 IdFor、NameFor 并手动设置值,它将按预期工作。
// This works and has a value attribute with a value
<input type="hidden" id="@Html.IdFor(x => x.Fields[componentIndex].Value)" name="@Html.NameFor(x => x.Fields[componentIndex].Value)" value="@Model.Fields[componentIndex].Value"/>
// This has a value attribute but it's empty
@Html.HiddenFor(x => x.Fields[componentIndex].Value)
Run Code Online (Sandbox Code Playgroud)
请注意,在这两种情况下,生成的名称和 ID 是相同的。
如果我使用 HiddenFor 并提供 anew { @Value=... }值,它也不会设置。
设置值的 HiddenFor 之间的唯一区别(使用相同的代码但不同的组件索引)是它们是在发布时提供的,而这个有问题的值是在控制器中设置的。