Oto, co możesz zrobić, to utworzyć jako szablonu edytora, bo jak Andre pointed out, HiddenFor
jest równoznaczne z metod pomocniczych, takich jak TextBoxFor
i CheckboxFor
.
Prawdopodobnie będziesz chciał mieć również faktycznego edytora, więc umieść swój prawdziwym edytorem pod numerem ~/Shared/EditorTemplates
. Zamierzamy umieścić naszego "ukrytego edytora" pod kontrolerem, na którym chcesz go użyć.
~/Views/ControllerName/EditorTemplates/ModelName.cshtml
Powiedzmy mamy Person
model.
public class Person
{
public string First { get; set; }
public string Last { get; set; }
}
Utworzymy częściowy widok.
@Model Person
@Html.HiddenFor(p => p.First);
@Html.HiddenFor(p => p.Last);
A potem będziemy udawać, że mamy model, który zawiera Person
jako właściwość. Z naszego głównego widoku nazywamy naszego "ukrytego edytora" w ten sposób.
@Model Foo
@Html.EditorFor(f => f.Person)
Łatwy peasy cytryny squeezy. Trochę zdziczałe, ale działa jak urok.
Dzięki za to, jak to zrobić, ale jak już powiedziałem w moim pytaniu, już wiem, że jest to możliwe obejście :-) – float
To nie było dla ciebie @float. Miało to uratować następnego faceta, takiego jak ja, który googlował i uznał ten Q/A za absurdalnie długi czas. – RubberDuck