Seit ein paar Monaten programmiere ich ASP C#. Ich programmiere immer viel Code in den Events und im Load Event prüfe ich den Querystring auf gültige Daten. Dies ist einige Beispiel-Code habe ich in einem meiner Projekte:
protected void Page_Load(object sender, EventArgs e)
{
if (Controller.Manual == null)
{
Response.Redirect("login.aspx");
}
lblLocation.Text = "<a href='viewdocument.aspx'>" + Controller.Manual.Title + "</a>";
if (Request.QueryString["gchap"] != null)
{
if (Controller.IsNumeric(Request.QueryString["gchap"].ToString()))
{
genchap = Convert.ToInt32(Request.QueryString["gchap"]);
FillGeneralList();
SetChapterTitle();
}
}
if (Request.QueryString["qchap"] != null)
{
if (Controller.IsNumeric(Request.QueryString["qchap"].ToString()))
{
qualchap = Convert.ToInt32(Request.QueryString["qchap"]);
FillQualityList();
SetChapterTitle();
}
}
// Check document Id is set (did)
if (Request.QueryString["did"] != null)
{
if (Controller.IsNumeric(Request.QueryString["did"].ToString()))
{
docId = Convert.ToInt32(Request.QueryString["did"]);
DetermineView();
}
}
}
Ich weiß, dass es einen Weg geben muss, dies auf eine saubere Art und Weise zu erreichen. Und das ist nur das Ladeereignis. Auf andere Ereignisse, wie Klick und onchange Ereignisse habe ich ähnlichen Code. Ich denke, das ist Spaghetti-Code und nicht gut geordnet. Können Sie mir also sagen, wie ich meinen Code ordnen kann?
EDITAR:
Was ich wissen möchte, ist, gibt es eine ordentlichere Art und Weise zu, sagen wir, eine Listbox zu füllen? Und wo prüfe ich, ob ein Querystring-Wert gültige Daten enthält? Wo prüfe ich, ob die Daten (Eingabe/Querystring) eine Zahl sind? Und wo sollte man den Code zur Validierung des Querystrings unterbringen? Auch im load event?