asp.net mvc 3 jquery sau ajax cu @ Ajax.BeginForm ()

Lucrez la un proiect CMS simplu și am fugit într-un zid. Și după o mulțime de ore, a explodat.

Din anumite motive, butoanele din @ Ajax.BeginForm nu au activat postback-ul. Nici postback complet nici ajax. Am facut referire la scripturi si am incercat sa depanam jQery, examinand fiecare caracter din Controlere, Viziuni, Referinte si Modele fara nici un rezultat. Nu au fost aruncate erori sau excepții.

Controler action:

[HttpPost]
public ActionResult Delete(int ID,int page=1)
{
  //some code...
  //...work, work, work...
}

Vizualizați segmentul:

@using (Ajax.BeginForm("Delete", "Client", new { page = Model.CurrentPageIndex }, ao))
{
    @Html.Hidden("clientID", item.ClientID)
    <input type="submit" value="Briši" name="brisi" />
}

Eroare:

    

Dicționarul de parametri conține o intrare nulă pentru parametrul "ID" de tip non-nullabil "System.Int32" pentru metoda "System.Web.Mvc.ActionResult Delete (Int32, Int32)" în "Info3CRM.WebUI.Controllers. ClientController“. Un parametru opțional trebuie să fie un tip de referință, un tip nullabil sau să fie declarat ca parametru opțional.     Nume parametru: parametrii

  

În cele din urmă am decis să dezactivez jQuery și Ajax și să fac postback normal. Apoi, excepția a fost aruncată. Încercam să numesc Acțiunea în controler fără toți parametrii necesari.

Întrebarea mea la toate este: Cum să prindeți o astfel de excepție dacă jQuery și ajax sunt activate?

1

2 răspunsuri

Ați putea vedea această eroare într-un instrument de depanare a unui client.

De exemplu, Fiddler vă va arăta răspunsul care a revenit de la server - și puteți utiliza fila WebFiew a Fiddler consultați răspunsul HTML. Răspunsul HTML în acest caz vă va arăta ecranul de eroare galben ASP.NET.

În plus față de fișierul Fiddler, puteți utiliza, de asemenea, instrumente de depanare a browserului care se integrează în IE , Chrome sau Opera sau puteți descărca Firebug pentru FireFox. Fiecare instrument are o filă de rețea care vă va arăta toate solicitările ajax și răspunsurile acestora.

1
adăugat
Nu eo problemă - mă bucur că am putut ajuta. ;)
adăugat autor nikmd23, sursa
Mulțumesc!!! Credeți sau nu, am folosit firebug de ani de zile, dar mai ales doar pentru a repara CSS, și încercați să depanare JS, nu am mers tot drumul la fila Net .....
adăugat autor Zaak, sursa

Problema dvs. este că acțiunea pe care o desfășurați POSTing se așteaptă să găsească un parametru numit ID , în timp ce nu există niciun astfel de parametru fiind POSTed. Dacă schimbați numele intrării ascunse pentru a se potrivi cu numele parametrului, laate ar trebui să funcționeze bine.

Deci, schimbați

@Html.Hidden("clientID", item.ClientID)

la

@Html.Hidden("ID", item.ClientID)
0
adăugat
Știu asta acum, dar problema mea era să găsesc asta. Deoarece nici o excepție nu a fost aruncată, nu am putut găsi problema. Aici este evident că în problema inițială, tipografia a fost i vs ì
adăugat autor Zaak, sursa