ASP.NET MVC Html.Editor将模型传递给编辑器模板

时间:2015-02-05 15:28:43

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

我有一个名为" Address.cshtml"的编辑模板。模型定义为:

@model Acme.Models.Address

在视图中我想调用编辑器模板并传递相同类型的局部变量,并定义它将用于变量的名称,我尝试了很多事情,包括:

@Html.Editor("address", "Address", new { Model = address })

如何通过模型?

注意,我不能使用@ Html.EditorFor(),因为视图使用不同的模型。

2 个答案:

答案 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")