nicht sicher, wie dies zu Wort ...Dynamische Modelleigenschaften, erhalten Modelleigenschaft nach Name
ich ein Modell haben, hier ist ein Teil davon:
public class AnswerSheet
{
public string Q1 { get; set; }
public string Q2 { get; set; }
public string Q3 { get; set; }
public string Q4 { get; set; }
Ich bin mit einem Viewmodel Verwenden Sie dieselbe Ansicht, um jede Frage einzeln zu beantworten. Es funktioniert fast. Gibt es eine Art, wie ich mein Controller verwenden kann wie folgt dynamisch die model.q #, ex zuzuweisen:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateNextQ([Bind(Include = "ID, qCounter, Question,Comment")] AnswerSheetCreateVM answerVM)
{
if (ModelState.IsValid)
{
string questionAns = answerVM.Question + answerVM.Comment;
AnswerSheet answer= db.AnswerSheets.Find(answerVM.ID);
//THIS PART HERE IS WHERE I HAVE A PROBLEM
answer.Q(answerVM.qCounter) = questionAns;
//That one line above
db.AnswerSheets.Add(answer);
db.SaveChanges();
So kann im Grunde ich Daten von meinem Controller Variable (qCounter in diesem Fall) und weisen Sie ihn mein Modell wie Model.Q (qcounter)
Als eine Randnotiz bin ich offen für Vorschläge, wie diese Frage oder welche Tags zugeordnet werden.
Es klingt wie Ihr Modell für 'AnswerSheet' sollte wirklich eine' Liste haben Fragen { bekommen; einstellen; } ' –
Bitte beachten Sie, dass das Modell-View-Controller-Tag für Fragen über das Muster ist. Es gibt ein bestimmtes Tag für die ASP.NET-MVC-Implementierung. –
Jon Skeet, die Sache ist, ich möchte, dass meine Daten in eine Datenbank von AnswerSheets zurückgehen, wo jeder Datensatz Spalten für jede Frage hat (Q1, Q2, Q3, usw.). Gibt es noch eine Möglichkeit, mein Modell an eine Liste zu binden, aber die Daten so in der Datenbank speichern? Ich benutze zuerst den EF6-Code. – dave317