Установка составных свойств через форму.ASP.NET MVC - PullRequest
0 голосов
/ 21 февраля 2012

Как установить составное Address (содержит улица , город и т. Д.) Свойство в моей модели на форме?

Должен ли это быть какой-то помощник?

View

@model Person

@using(@Html.BeginForm("Create", "Person", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    @Html.ValidationSummary()    
    <fieldset>
        <p>
            @Html.Label("MiddleName") <br />
            @Html.TextBoxFor(p => p.MiddleName)
        <p>

        @* And so on... *@

        @* What about Model.Address ? How do I assign person's `Address` properties? *@

    </fieldset>
}

Спасибо!

1 Ответ

0 голосов
/ 21 февраля 2012

Модель:

public class Address
{
    public string Street { get; set; }
    public string City { get; set; }
}

public class MyViewModel
{
    public Address Address { get; set; }
}

Контроллер:

public class HomeController: Controller
{
    public ActionResult Index()
    {
        var model = new MyViewModel();
        return View(model);
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        // the default model binder will take care of populating
        // your view model along with its complex properties
        ...
    }

}

Вид:

@model MyViewModel
@using (Html.BeginForm())
{
    <div>
        @Html.LabelFor(x => x.Address.Street)
        @Html.EditorFor(x => x.Address.Street)
    </div>
    <div>
        @Html.LabelFor(x => x.Address.City)
        @Html.EditorFor(x => x.Address.City)
    </div>

    <p><button type="submit">OK</button></p>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...