У меня есть форма регистрации для регистрации личных атрибутов. Я использую обе функции Ajax.BeginForm
, а также JSON для сериализации формы. Эта форма обновляет атрибуты, а также показывает атрибуты, если они доступны в БД. Поэтому, если пользователь вводит значения и нажимает кнопку «Сохранить», он сериализует форму и сохраняет ее в БД. Когда пользователь заходит на страницу; он также использует JSON для заполнения формы из БД, если есть доступная запись, а не просто показывает пустую форму, как обычно.
Пожалуйста, найдите часть вида ниже.
@using (Ajax.BeginForm(
"savepeople",
"people",
FormMethod.Post,
new AjaxOptions { OnComplete = "savePicture" },
new { id = "frPeople" }))
{
@Html.ValidationSummary(true, "Problem during saving...")
<fr>
<h2>
Personal Details</h2>
<br />
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.People.Title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.People.Title)
@Html.ValidationMessageFor(model => model.People.Title)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.People.Description)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.People.Description)
@Html.ValidationMessageFor(model => model.People.Description)
</div>
<p>
<input id="saveMarker" type="submit" value="Save" />
</p>
}
Поэтому я использую такую модель:
namespace MyProject.Models
{
public class Profile
{
public People People { get; set; }
// I am also referencing other models here...
}
public partial class People
{
public int PeopleId { get; set; }
public Guid UserId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
// It has other attributes also...
}
И контроллер имеет классическую функцию post и get, совместимую с JSON, для вызова и обновления страницы.
Моя проблема: я уже могу обрабатывать эти операции с TextBox
, но я хочу добавить предопределенный DropDownList
, чтобы использовать его как для сохранения / обновления, так и для отображения значений, если он имеет сохраненная запись в дБ.
У вас есть идеи о том, как справиться с этой проблемой?