2012-03-30 4 views
0

В принципе, вместо того, чтобы писать простой старый HTML-код для создания формы, я хотел бы вызвать вспомогательный метод и вернуть это то, что мне нужно.Как я могу вызвать «EditorFor» для определенного класса из _Layout.cshtml?

<div class="contacto-container"> 
    <h1>Envíenos sus consultas:</h1> 

    @Html.Editor("BuzonDeSugerenciaModel", "BuzonDeSugerenciaModel") 

    <div class="separator"></div>  
</div> 

Это не делает то, что я думаю, что это будет делать.

Он выдает:

<input id="BuzonDeSugerenciaModel" 
     class="text-box single-line" 
     type="text" value="" name="BuzonDeSugerenciaModel"> 

И не коллекция входов я объявил в классе модели, BuzonDeSugerenciaModel.

Если бы это было сильно тип View, было бы хорошо, если бы я пошел:

@Html.EditorForModel() 

Однако, так как это выполняется в файле _Layout.cshtml, мне нужно что-то другое. Я не могу понять, как это сделать.

Любые идеи?

ответ

1

Вам необходимо создать частичный вид, который строго типизирован для вашего класса BuzonDeSugerenciaModel. Этот частичный вид будет находиться в вашем каталоге Views > Shared.

Что-то вроде этого (_BuzonDeSugerenciaModel.cshtml):

@model BuzonDeSugerenciaModel 

@Html.EditorForModel() 

Тогда в вашем _Layout.cshtml, вы можете позвонить:

@Html.Partial("_BuzonDeSugerenciaModel", Model.buzonDeSugerenciaModel) 

Вам нужно будет передать экземпляр BuzonDeSugerenciaModel в качестве второго аргумента до Partial(). Если у вас нет одной принятой формы Controller, что-то вроде этого будет работать:

@Html.Partial("_BuzonDeSugerenciaModel", new BuzonDeSugerenciaModel())