Ajout d'éléments à la liste dans le modèle dynamique via ajax
J'ai le code suivant et je suis en train d'ajouter de la valeur sélectionnée pour le modèle.SelectedPayCodes liste à chaque fois que l'utilisateur effectue une sélection dans la liste déroulante et cliquer sur "Ajouter"
CONTRÔLEUR
[HttpPost]
public PartialViewResult AddPayCode(ReferralModel model, string SelectedPayCode)
{
var payCode = _employeeService.GetPayCodeById(Convert.ToInt32(SelectedPayCode));
model.Add(payCode);
return PartialView("_PayCodesPartial",model);
}
MODÈLE
public class ReferralModel
{
public Customer Customer { get; set; }
public Employee Employee { get; set; }
public List<PayCode> PayCodes { get; set; } //List of paycodes
public List<PayCode> PayCodesList { get; set; } //List of 'selected' paycodes
public SelectListItem SelectedPayCode { get; set; } //current selected paycode
public Referral Referral { get; set; }
public ReferralModel()
{
PayCodesList = new List<PayCode>();
}
//Step 3 - Add Paycode is done here.
public void Add(PayCode payCode)
{
PayCodesList.Add(payCode);
}
}
VUE de Créer.cshtml
@using (Ajax.BeginForm("AddPayCode", "Referral",
new AjaxOptions()
{
HttpMethod = "POST",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "PayCodes",
}))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<!-- payCodes input-->
<div class="control-group col-lg-6">
<label class="control-label">Product</label>
<div class="controls">
<!-- Step 1 + Choose PayCode Here -->
@Html.DropDownListFor(model => model.SelectedPayCode, new SelectList(Model.PayCodes.ToList(), "Id", "Description"), "- Select -")
<input type="submit" value="Add" />
</div>
</div>
<!-- pay codes list -->
<div id="PayCodes">
</div>
}
VUE - _PayCodesPartial.cshtml
@model Zenwire.Models.ReferralModel
@if (Model.PayCodesList != null)
{
foreach (var item in Model.PayCodesList)
{
string.Format("{0} - {1}", item.Code, item.Description);
}
}
Le problème semble être à chaque fois qu'un nouvel élément est ajouté la liste est à nouveau vide et ne pas le conserver sélection précédente.
- Vous n'êtes pas en ajoutant les valeurs de la liste actuelle de la vue du modèle. Vous êtes juste l'ajout de la dernière valeur.
- Comment puis-je résoudre ce problème?
- Vous pourriez enregistrer les valeurs dans la base de données.
- Je suis en train de construire une liste d'abord parce que le formulaire principal sur la page de postes à la base de données et j'ai besoin de la référence ID de la ligne insérée lien vers la liste des paycodes... Si je stocker les paycode à la base de données j'ai besoin d'un moyen de relier entre eux, tout comme ils sont ajoutés à la référence qui sera créée automatiquement.
Vous devez vous connecter pour publier un commentaire.
De l'essayer. J'ai utilisé de l'État de Session
System.Web