2015-02-05 92 views
1

我有一個編輯模板被稱爲具有模式「Address.cshtml」定義爲:ASP.NET MVC Html.Editor通過模型編輯器模板

@model Acme.Models.Address 

在視圖中我要調用編輯器和模板通過同一類型的局部變量,並將其定義將用於變量的名字,我已經嘗試了很多事情,包括:

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

我如何通過模型?

請注意,我不能使用@ Html.EditorFor(),因爲視圖使用了不同的模型。

+0

你仍然可以使用EditorFor我所看到的 – 2015-02-05 15:32:16

+0

@EhsanSajjad怎麼樣?當你在linq表達式中引用模型時,它將綁定到視圖的模型,你如何覆蓋它以使用不同的對象作爲模型? – Josh 2015-02-05 15:34:28

+0

你可以像'EditorFor(x => address)那樣做'如果地址是可變的,它應該可以工作,但我不確定,從技術上說它應該可以工作 – 2015-02-05 15:36:49

回答

2

只有EditorFor的目的是與您的視圖的模型一起工作。如果您需要使用完全不同的類實例,這不是您的視圖模型,或者通過您的視圖模型來訪問。然後只需使用Html.Partial。它們在功能上是相同的。如果您擔心使用特定的編輯器模板,則始終可以將視圖的完整路徑傳遞至Html.Partial

+0

使用Html.Partial結束。我不認爲EditorFor可以用於這個,但我認爲可能有一種方法可以使用Html.Editor()傳遞一個作爲編輯器模板模型的對象。 – Josh 2015-02-05 22:03:59

+0

@Josh,'@ Html.EditorFor(m => m.Address)'確實將對象傳遞給'EditorTemplate'(假設屬性Address是'Acme.Models.Address'的類型) – 2015-02-05 22:45:28