Erstellen von 28 Kontrollkästchen mit einem allgemeinen Namen und verschiedenen Werten

  • Es gibt 28 Kontrollkästchen, die einen allgemeinen Namen haben und unterschiedliche Werte haben:

     <input type="checkbox" name="Schedules" id="checkbox1" value="1">
     

    Im Nachlauf der Steuerung:

     public ActionResult Create(SubscriptionPlanCreateViewModel subscriptionPlanCreateViewModel, FormCollection Form)
    {
        string[] AllStrings = Form["Schedules"].Split(',');
        foreach (string item in AllStrings)
        {
            int value = int.Parse(item);
            if (value == 1)
            {
                subscriptionPlanCreateViewModel.Timeschedule = "OneTime";
            }
        }
    }
     

    Durch die Verwendung dieses Codes muss ich 28 if Bedingungen verwenden. Wie kann ich die Codegröße reduzieren?

    23 November 2014
    Jamal
2 answers
  • Mir scheint, dass Sie den Ansichtscode wirklich ändern müssen. Wenn Sie beispielsweise Folgendes tun:

     <input type="checkbox" name="Timeschedule" id="checkbox1" value="OneTime">
    <input type="checkbox" name="Timeschedule" id="checkbox2" value="Weekly">
     

    Das bindet sich automatisch an die Timeschedule -Eigenschaft Ihres [ &&3&&]. Wenn der Benutzer jedoch mehrere Kontrollkästchen auswählt, werden die Werte wahrscheinlich durch Kommas getrennt dargestellt. Sie können entweder ein Array Timeschedule erstellen (was wahrscheinlich das darstellt, was Sie aus der Datenperspektive tun) oder Sie können die Kommas einfach durch "|" ersetzen, um die von Ihnen angegebene Zeichenfolge zu erzeugen will in deinen Kommentaren.

    15 November 2011
    WMR
  • Sie können die Kontrollkästchen wie folgt verwenden

     <input type="checkbox" name="Timeschedule" id="checkbox1" value="OneTime">
    <input type="checkbox" name="Timeschedule" id="checkbox2" value="Weekly">
     

    und die Werte aus der Steuerung auslösen Mehrere Kontrollkästchen können mit dieser Methode abgerufen werden

     string[] AllStrings = Form["Timeschedule"].Split(',');
     

    oder

     string[] AllStrings = Request["Timeschedule[]"].Split(',');
     
    15 November 2011
    Joshua Carmody