2013-06-26 4 views
0

Я начинаю с помощью ASP.NET MVC4 и Я некоторые небольшие проблемы :) У меня есть ViewModel, который выглядит следующим образом:ASP.NET MVC 4 - Generic List - Просмотр - Ajax.ActionLink

public class Adulte{ 
    public string Name {get;set;} 
    public List<Child> Children {get;set;} 
} 
public class Child{ 
    public string Name {get;set;} 
    public int Age {get;set;} 
} 

Я хотел бы динамически добавлять/удалять дочерний элемент из моего представления.

@Ajax.ActionLink("Add Child", 
     "AddChild", 
     new { ???= ??? }, 
     new AjaxOptions 
     { 
     InsertionMode = InsertionMode.InsertAfter, 
     HttpMethod = "POST" 
     } 
    ) 
    ..... 
    @using (Html.BeginForm()) 
    { 
     <div id="parent"> 
      <p> 
      @Html.Label("Name") 
      @Html.TextBoxFor(x => x.Name) 
      <p> 
      </div> 
      <div id="children"> 
      </div> 
      <input type="submit" value="Save" /> 
    } 

Но я не знаю, какой параметр для отправки на ActionLink, я проверяю с моделью, а также Model.Children без успеха.

Это можно сделать?

Любая помощь?

+0

Какую модель вы хотите передать? – Longball27

+0

Я пытался передать Adulte и с контроллера. [AcceptVerbs (HttpVerbs.Post)] общественного ActionResult AddChild (Adulte AdulteItem) { если (AdulteItem.Children == NULL) AdulteItem.Children = новый список (); \t AdulteItem.Children.Add (новый ребенок()); return PartialView («ChildView», AdulteItem); } – Stan92

ответ

1

Имейте некоторые ключевые свойства в Adulte или Child. Или, если Name будет уникальным, вы можете отправить Name за Adulte или Child.

public class Adulte{ 
    public int AdulteId {get;set;} 
    public string Name {get;set;} 
    public List<Child> Children {get;set;} 
} 
public class Child{ 
    public int ChildId {get;set;} 
    public int Age {get;set;} 
} 

В View (удалить Child)

@Ajax.ActionLink("Remove Child", 
    "RemoveChild", 
    new { ChildId = ChildId }, 
    new AjaxOptions 
    { 
    InsertionMode = InsertionMode.InsertAfter, 
    HttpMethod = "POST" 
    } 
) 

И добавить Child, вы можете передать его без параметров.

... 
"AddChild", 
    null, 
    new AjaxOptions.... 
+0

Спасибо .. пожалуйста, пожалуйста, расскажите, как настроить partialView для AddChild? Я пробовал, что сказал, но когда я проверяю всю окончательную форму, мой Adulte.Children (после того, как мой

забыл упомянуть, что мой ) всегда пуст. Извините за эту проблему новичка. Просто нужно получить снимок. – Stan92

+0

[Использование частичных представлений в ASP.net MVC 4] (http://stackoverflow.com/questions/13934671/using-partial-views-in-asp-net-mvc-4), [с использованием Ajax для частичной загрузки изображения в .NET MVC4] (http://stackoverflow.com/questions/14529936/using-ajax-for-partial-view-loading-in-net-mvc4) - помогите себе – Paritosh