Cela semble que la liaison du modèle me cause des problèmes.Asp.Net MVC - Liaison du paramètre à la valeur du modèle!
Essentiellement, j'ai un modèle appelé ProductOption et dans le but de cette question, il dispose de 2 champs
ID (Int) PK ProductID (Int) FK
J'ai une route standard set-up
context.MapRoute(
"Product_default",
"Product/{controller}/{action}/{id}",
new { controller = "Product", action = "Index", id = UrlParameter.Optional }
);
et si l'utilisateur veut ajouter une option l'URL est,
/Produit/Options/Ajout/1
dans l'URL ci-dessus 1 est le ProductID, j'ai le code suivant pour retourner un modèle en blanc la vue,
[HttpGet]
public ActionResult Add(int id)
{
return View("Manage", new ProductOptionModel() { ProductID = id });
}
maintenant à mon avis, je garde un champ caché
<%= Html.HiddenFor(x=>x.ID) %>
Il est utilisé pour déterminer (à soumettre) si nous éditons ou l'ajout d'une nouvelle option. Cependant, le classeur Modèle dans .net semble remplacer .ID (Qui était 0 en quittant le précédent get actionresult) avec 1 (ou la valeur du paramètre id dans l'URL)
Comment puis-je arrêter ou contourner cela?
ViewModel
public class ProductExtraModel
{
//Database
public int ID { get; set; }
public string Name { get; set; }
public int ProductID { get; set; }
public ProductModel Product { get; set; }
}
Votre code implique qu'il s'appelle ProductID dans le modèle pas .ID? – Andrew
Pouvez-vous poster le code du modèle de vue? – Andrew
@SocialAddict, terminé. – LiamB