Вставка значений по умолчанию в "EditorForModel()"

В моем приложении у меня есть вид для управления адресами.

Когда вызывается действие, ему передаются идентификаторы и значение bool. Если true, адрес должен быть отредактирован, а не создан. Есть ли способ присвоить значения из адреса для редактирования полям EditorForModels или лучше написать каждое поле по отдельности?

 @Html.EditorForModel()

или же

    <input type="text" required="required" name="firstName" value="@fName"/>
    <br/>
    <label>Last Name: </label>
    <input type="text" required="required" name="lastName" value="@lName"/>
    <br/>
    <label>Address: </label>
    <input type="text" required="required" name="address" value="@addy"/>
    <br/>
    <label>Town: </label>
    <input type="text" required="required" name="town" value="@town"/>
    <br/>
    <label>Post Code: </label>
    <input type="text" required="required" name="postCode" value="@postCode"/>

1 ответ

Решение

Используйте строго типизированное представление, присвойте значения свойствам объекта Model и передайте его вашему представлению. Это приведет к предварительно заполненным шаблонам редактора:

Модель:

public class SomethingModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string PostCode { get; set; }
}

контроллер:

public ActionResult MyAction()
{
    var model = new SomethingModel {
        FirstName = "John",
        LastName = "Doe",
        PostCode = "XXY XXY"
    };
    return View(model);
}

Посмотреть:

@model SomethingModel

<div class="input">
    @Html.TextBoxFor(m => m.FirstName)
</div>
<div class="input">
    @Html.TextBoxFor(m => m.LastName)
</div>
<div class="input">
    @Html.TextBoxFor(m => m.PostCode)
</div>
Другие вопросы по тегам