none
Problema con "Una pagina può contenere solo un tag Form del lato server" e masterpage RRS feed

  • Domanda

  • Salve a tutti,
    Mi ritrovo con un problema apparentemente irrisolvibile, a causa di una limitazione di asp.net.
    Mi spiego rapidamente:
    Ho una masterpage, con la classica colonna centrale per i contenuti, la quale è quindi un semplice content place holder.
    Poi, ho una colonna di destra dove vorrei mettere un box del tipo "articoli suggeriti".

    Mi scrivo il mio controllo ASCX per gli articoli suggeriti, e lo incollo nella colonna di destra.
    Il tutto però non funziona a Runtime, e mi dà l'errore:
    "Una pagina può contenere solo un tag Form del lato server. "

    Questo perché (ovviamente), non ho messo il tag form "globale" a tutta la masterpage (altrimenti non potrei inserire più alcun form standard come la ricerca di Google etc. poiché sarebbero form annidati), ma solo nelle varie pagine che ne necessitano.
    In questo modo, però, per inserire il mio usercontrol ASCX nella masterpage, devo inserire per forza un altro form runat=server, altrimenti non funzionerebbe...

    Come risolvo? Non vedo nessuna via d'uscita per ora...

    mercoledì 26 dicembre 2012 21:53

Tutte le risposte

  • Ciao, asp.net ammette soltanto un tag form. Ad ogni modo per capire meglio la tua situazione dovresti postare il codice della tua masterpage...


    Ricardo Bagnati - www.vicenzasoftware.com

    giovedì 27 dicembre 2012 05:55
  • Dovresti gestire il secondo form lato javascript

    Ciao


    Luca Congiu (congiuluc)
    Personal Blog: blogs.dotnetcode.it

    venerdì 28 dicembre 2012 20:15
    Moderatore
  • Mmm.., forse non mi sono spiegato bene:

    La mia richiesta è che devo inserire alcuni usercontrol ASP.Net nella masterpage (e NON form "normali").
    Per fare ciò, gli usercontrol devono essere all'interno di un tag <form runat=server>. Ma questo è impossibile, poiché avrei due tag form; in quanto ogni pagina html ha già il tag form all'interno; e preferisco non inserire a livello "globale" il <form runat=server> sulla masterpage.

    sabato 29 dicembre 2012 11:59
  • e preferisco non inserire a livello "globale" il <form runat=server> sulla masterpage.

    Forse ho capito adesso, ma perchè non vuoi inserirlo a livello globale?

    Ricardo Bagnati - www.vicenzasoftware.com

    sabato 29 dicembre 2012 12:02
  • Per tanti motivi:

    1) Avrei *sempre* il viewstate, anche su pagine dove non serve.
    2) Non potrei inserire più nessun form, anche standard html, in quanto diventerebbe un form nidificato (il che, ovviamente, è impossibile).
    3) Dovrei andare manualmente a modificare ogni singola pagina dove invece il tag form è a livello locale e rimuoverlo...

    sabato 29 dicembre 2012 12:27