Web aplikacija koja se sastoji od jedne strane koja ima header, footer i content. Header i footer su konstantni, a Content se menja uz pomoc javascripta i ajax jquery post-a. Prost primer jednog takvog content dela bi bio
- <div id="divContent"> i u njemu forma sa dva input polja i dugme
- klik na dugme poziva javascript metodu
- javascript metoda radi ajax post na neku akciju
- akcija radi nesto i vraca kao rezultat HTML koji ce se prikazati
- javascript metoda u success delu lepi rezultat na content div
E, gde je tu problem? Problem je u tome sto je ovako implementirana javascript metoda glupa i ne zna koji je html dobila. Ukoliko se desila neka greska, controller ce vratiti view sa view modelom, ali metoda nece znati da se desila greska. Ako bih hteo jos dodatno nesto da uradim ne bih mogao. Mislim, mogu da budzim nesto, ali kapiram da mora da postoji nesto uljudnije. Mogu na primer u taj view da stavim non visible div u koji cu preko ViewBag.statusCode (koji cu da setujem u akciji) da ubacim nesto pa u success delu javascript metode da to procitam, ali mi to nesto ne mirise kako treba.
javascript metoda:
Code:
function postRegistrationForm() {
$('#divContent').hide('slow');
$.ajax(
{
type: "POST",
url: "/Account/UserRegistration",
data: $("#frmUserRegistraiton").serialize(),
success: function (result) {
$("#divContent").html(result);
$('#divContent').show('normal');
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
function postRegistrationForm() {
$('#divContent').hide('slow');
$.ajax(
{
type: "POST",
url: "/Account/UserRegistration",
data: $("#frmUserRegistraiton").serialize(),
success: function (result) {
$("#divContent").html(result);
$('#divContent').show('normal');
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.status);
alert(thrownError);
}
});
}
Kontroler akcija:
Code:
public ActionResult UserRegistration(UserRegistrationViewModel model)
{ if(sve Ok)
return PartialView("_NekiView");
else (nesto ne valja)
return PartialView("_UserRegistration", model);
}
public ActionResult UserRegistration(UserRegistrationViewModel model)
{ if(sve Ok)
return PartialView("_NekiView");
else (nesto ne valja)
return PartialView("_UserRegistration", model);
}
Jel postoji nacin da se uz view vrati jos nesto? Kako se Json uklapa ovde kad treba akcija da vrati html? Slab sam sa Jsonon skroz.
Hvala