J'ai une vue avec l'ajout d'élément à une collection : Il m'ajoute un élément au HTML, mais lorsque j'appelle ActionResult, le Model.TagModelsis reste vide (au départ il est vide).
Hello
@foreach (var item in Model.TagModels)
{
@Html.EditorFor(model => item.Name)
@Html.ValidationMessageFor(model => item.Name)
}
$(document).ready(function () {
var $newdiv1 = $('<div class="ui-button-text"><input class="text-box single-line" id="item_Name" name="item.Name" type="text" value="b" /><span class="field-validation-valid" data-valmsg-for="item.Name" data-valmsg-replace="true"></span></div>');
$("#add_tag").live("click", function () {
$(this).append($newdiv1);
return false;
});
});
Voici mon viewmodel :
public class QuestionTagViewModel
{
public QuestionModel QuestionModel { get; set; }
//private List _tagModels=new List(){new TagModel(){Name = "a"},new TagModel(){Name = "b"}};
private List _tagModels = new List();
public List TagModels
{
get { return _tagModels; }
set { _tagModels = value; }
}
}
Pourquoi n'y a-t-il pas de mise à jour sur le modèle ? Quand je change les propriétés des autres éléments statiques, tout se passe bien
EDIT Pour MHollis :
Merci Anton pour votre réponse :)
Maintenant j'ai
$(document).ready(function () {
$("#addItem").click(function () {
$.ajax({
url: this.href,
cache: false,
success: function (html) { $("#tags_div").append(html); }
});
return false;
});
});
Et tags_div :
Hello
@Html.ActionLink("Ajouter un autre...", "BlankEditorRow", null, new { id = "addItem" })
@foreach (var item in Model.TagModels)
{
@Html.EditorFor(model => item.Name)
}
Et la méthode PartialViewResult :
public PartialViewResult BlankEditorRow()
{
var x=PartialView("TagRow", new TagModel());
return x;
}
et la vue partielle :
@*@using Szamam.Models
@model TagModel
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
*@
L'élément est ajouté mais lorsque l'actionresult est faite, la collection est vide :/
Il doit y avoir une autre raison :/