Вставка значений по умолчанию в "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>