Не удается получить значения из представления (сначала с кодом MVC) - PullRequest
1 голос
/ 04 октября 2011

Вот так я заполняю представление из модели представления PersonInformation ..

@model Client.Models.PersonInformation

<fieldset>
    <legend>Contact Information</legend>

    @foreach (var item in Model.MemberContacts) 
    {
        <div class="editor-label">
            @Html.DisplayFor(model => item.MemberContactDescription)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => item.ContactInformation)
            @Html.ValidationMessageFor(modelitem => item.MemberContactDescription)
        </div>
    }
</fieldset>

И ViewModel

public class PersonInformation
{
    public Person person { get; set; }
    public Address premiseAddress { get; set; }
    public Address billingAddress { get; set; }

    private ICollection<MemberContact> _MemberContacts { get; set; }
    public virtual ICollection<MemberContact> MemberContacts
    {
        get { return _MemberContacts ?? (_MemberContacts = new HashSet<MemberContact>()); }
        set { _MemberContacts = value; }
    }

    public  PersonInformation()
    {
        BIMemberService lib = new BIMemberService();
        ICollection<MemberContact> mcs = new List<MemberContact>();

        foreach (ContactLib itm in lib.ContactLibs())
        {
            MemberContact mc = new MemberContact();
            mc.MemberContactDescription = itm.Description;
            mc.ContactLibID = itm.ContactLibId;
            mc.ContactInformation = "test";
            mcs.Add(mc);
            MemberContacts.Add(mc);
        }
    }
}

Но этот (который имеет поле ввода текста), не имеет значения для действия post.

@Html.EditorFor(model => item.ContactInformation)

Это моё сообщение.

[HttpPost]
    public ActionResult PersonInformation(PersonInformation member)
    {
        if (ModelState.IsValid)
        {
            db.Apply(member);
            return View("Requirements", member.person.MemberRequirements);
        }
        return View(member);
    }

При отслеживании кода строка ниже возвращает нулевое значение

member.MemberContacts.ContactInformation

Любой совет, высоко ценится.

Спасибо

Ответы [ 2 ]

0 голосов
/ 04 октября 2011

Вы пытаетесь использовать редактор для произвольного элемента коллекции.

попробуйте прочитать этот пост .Это должно дать вам некоторое представление о привязке коллекции

0 голосов
/ 04 октября 2011

Связыватель модели по умолчанию может связывать поля только с простыми свойствами вашей модели.Вам необходимо реализовать собственную модель переплета.

Проверьте это по адресу: http://odetocode.com/blogs/scott/archive/2009/04/27/6-tips-for-asp-net-mvc-model-binding.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...