我有一个名为" Address.cshtml"的编辑模板。模型定义为:
@model Acme.Models.Address
在视图中我想调用编辑器模板并传递相同类型的局部变量,并定义它将用于变量的名称,我尝试了很多事情,包括:
@Html.Editor("address", "Address", new { Model = address })
如何通过模型?
注意,我不能使用@ Html.EditorFor(),因为视图使用不同的模型。
答案 0 :(得分:3)
EditorFor
的唯一目的是使用您的视图模型。如果您需要使用一个完全不同的类实例,它不是您的视图模型,也可以通过您的视图模型访问。然后使用Html.Partial
。它们在功能上是相同的。如果您担心使用特定的编辑器模板,则始终可以将视图的完整路径传递给Html.Partial
。
答案 1 :(得分:0)
在视图中(在其标题或其他位置,但在您要调用Html.Editor的行之前),您可以在模型中将模型添加到ViewData中,其键等于您的Html.Editor的表达式,它将用作您的被叫编辑器中的模型。例如:
@{
var address = new Acme.Models.Address();
ViewData["address] = address;
}
@Html.Editor("address", "Address")