J'ai environ 7 modèles qui ont les mêmes propriétés (attributs). Sur la page de vue j'utilise un modèle (name = commonModel) qui contient toutes ces propriétés et une propriété supplémentaire pour choisir dans quelle base de données de modèle je veux enregistrer les données envoyées ainsi j'ai créé une méthode valuesRelocate qui assignera toutes les propriétés de commonModel à le modèle choisi (dans ce cas l'article). Le code que j'ai donné ci-dessous fonctionne mais j'obtiens une erreur lors de l'affectation de la valeur d'une propriété de commonModel à une propriété d'article. Quelle est la meilleure façon de le faire. erreur est à tempModel.questionerreur 1061. T ne contient pas une définition de <propertyName>
public ActionResult Create([Bind(Include =
"Id,question,ans,ruleApplicable,hint,exception,modelSelector")]
commonModel commonModel)
{
if (ModelState.IsValid)
{
if (commonModel.modelSelector == "article")
{
article model2 = new article();
article model1 = valuesRelocate<article>(commonModel,
model2);
db.articleDb.Add(model1);
db.SaveChanges();
return RedirectToAction("Index");
}
}
return View(commonModel);
}
private T valuesRelocate<T>(commonModel commonModel, T tempModel) {
tempModel.question = commonModel.question;
return tempModel;
}
J'utilise une classe de base abstraite nommée baseGrammar .code tant pour la classe est indiquée ci-dessous
public abstract class baseGrammar
{
[Key]
public int Id { get; set; }
[Required]
public string question { get; set; }
[Required]
public string ans { get; set; }
public string ruleApplicable { get; set; }
public string hint { get; set; }
public bool exception { get; set; }
}
celui indiqué ci-dessus est la classe de base et ceux indiqués ci-dessous sont des classes dérivées J'utilise différentes classes parce que je voulais avoir différentes classes pour différents concepts grammaticaux.
public class article : baseGrammar
{
}
public class commonModel : baseGrammar
{
[Required]
public string modelSelector { get; set; }
}
espérons que cela aide.
Vos modèles ont-ils la même classe de base, ou implémenter une interface? (Mis à part toute autre chose, je vous * conseille * fortement de commencer à suivre les conventions de nommage .NET.) –
Pouvez-vous dire quelle ligne de code montre une erreur? Pouvez-vous partager le code de la méthode 'valuesRelocate' aussi? –
J'ai fourni le code de la méthode valuesRelocate et la question dans tempModel.question à l'intérieur de la méthode valuesRelocate qui montre une erreur. @ChetanRanpariya – himanshu