2016-08-26 4 views
0

У меня возникла проблема. Я не могу понять, как отправлять сообщения с зависимостью. Я покажу вам код, тогда, возможно, яснее, чего я пытаюсь достичь.ASP.NET MVC Как разместить сложную модель

меня ViewModel:

public class ProjectViewModel : BaseViewModel 
{ 
    public int Id { get; set; } 
    public string Customer { get; set; } 
    public string CustomerRepresentative { get; set; } 
    public string ProjectTitle { get; set; } 
    public string WWSNumber { get; set; } 
    public List<Los> Service { get; set; } 
} 

LosViewModel:

public class Los 
{ 
    public int LosNumber { get; set; } 
    public string Service { get; set; } 
    public List<Pos> Pos { get; set; } 
} 

Pos вид модели:

public class Pos 
{ 
    public int PosNumber { get; set; } 
    public string PosDescription { get; set; } 
} 

Как вы видите первый ViewModel имеет список. Это означает, что когда пользователь заполняет LosNumber и входит в Сервис, он может добавить к нему PosNumber и PosDescription.

Невозможно найти информацию, как писать сообщения с помощью Razor такой модели. Все, что я нашел, - это отображение такого ModelViewm, но не редактирование.

Возможно, кто-то столкнулся с такой проблемой? Любая помощь ?

+1

Вы можете показать свой просмотр? –

+0

Похоже, ваша проблема больше сложной. Это не очень сложная модель, MVC будет знать, как сериализовать ваши опубликованные данные. Ваш метод post просто должен иметь тип модели в качестве принимающего параметра. public ActionResult MyPostMethod (модель ProjectViewModel) – pmeyer

+0

Не уверен, что это проблема, с которой вы сталкиваетесь, или если вы не знаете, как выполнять запись на уровне представления. – pmeyer

ответ

0

Вам нужно поместить коллекцию в цикл for на ваш взгляд, а затем ссылаться на объект по индексу коллекции. MVC достаточно умен, чтобы понять, что это сборник, когда вы отправляете его обратно. Что-то вроде ... TextBoxFor (m => Model.Service [i] .LosNumber). Коллекция внутри коллекции, скорее всего, будет только вложенным циклом.

MVC Razor view nested foreach's model

+0

Это подход, когда известна длина объекта, который вы хотите отобразить. Но в моем случае я не могу сказать, сколько элементов будет в списке. Возможно, мне следует спросить, как динамически создавать поля EditorFor с индексами. –

+0

вы можете сделать цикл for внутри бритвы в списке, и таким образом вы можете получить индекс == i для создания элементов управления. – pmeyer

+0

@pmeyer Скажите, как вы делаете цикл, не зная длины объекта? –

Смежные вопросы