Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[MVC2 -C#] - Client Validation

[es] :: .NET :: ASP.NET :: [MVC2 -C#] - Client Validation

[ Pregleda: 2808 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon [MVC2 -C#] - Client Validation15.01.2012. u 17:52 - pre 148 meseci
Ne radi mi klijent validacija.


MODEL:

Code:
public class GuestResponse
    {
        [Required(ErrorMessage = "You must enter a name")]
        public string Name { get; set; }

        [Required(ErrorMessage = "Please enter your email address")]
        [RegularExpression(".+\\@.+\\..+",
        ErrorMessage = "Please enter a valid email address")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Please enter your phone number")]
        [RegularExpression("^[0-9]+$", ErrorMessage = "Only numbers are allowed")]
        public string Phone { get; set; }
       
        [Required(ErrorMessage = "Please specify whether you'll attend")]
        public bool? WillAttend { get; set; }
    }




VIEW:

Code:
<html xmlns="http://www.w3.org/1999/xhtml" >
    
<head runat="server">
    <title>RsvpForm</title>    

<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>  
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script>     
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script>
<script src="../../Scripts/MicrosoftMvcValidation.js" type="text/javascript"></script>
    
</head>
<body>
<h1>RSVP</h1>
    
<%Html.EnableClientValidation(); %>

<% using(Html.BeginForm()) { %>
...


Gdje grijesim? Validacija jednostavno ne radi...
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation15.01.2012. u 22:47 - pre 148 meseci
Možda nisi dobro učitao javascript fajlove?
Za client side validaciju u MVC2 su ti potrebni samo MicrosoftAjax.js i MicrosoftMvcValidation.js i naravno <% Html.EnableClientValidation(); %>.

Probaj da javascript fajlove učitaš ovako:
Code:
<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>

 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation15.01.2012. u 22:55 - pre 148 meseci
Citat:
Dejan Carić: Možda nisi dobro učitao javascript fajlove?
Za client side validaciju u MVC2 su ti potrebni samo MicrosoftAjax.js i MicrosoftMvcValidation.js i naravno <% Html.EnableClientValidation(); %>.

Probaj da javascript fajlove učitaš ovako:
Code:
<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
<script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>


Nece... ubacio sam bas tako kao sto si naveo... ista stvar.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
*.dynamic.isp.telekom.rs.

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation15.01.2012. u 23:16 - pre 148 meseci
Okači ceo kod iz kontrolera (POST i GET metode) kao i View, pa da vidimo šta ne valja...
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation15.01.2012. u 23:25 - pre 148 meseci

Kontroler:
Code:

 [HttpGet]
        public ViewResult RsvpForm()
        {
            return View();
        }
        [HttpPost]
        public ViewResult RsvpForm(GuestResponse guestResponse)
        {
            if (ModelState.IsValid)
            {
                // To do: E-mail guestResponse to the party organizer
                return View("Thanks", guestResponse);
            }
            else // Validation error, so redisplay data entry form
                return View();
        }


View:

Code:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<PartyInvites.Models.GuestResponse>" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
    
<head runat="server">
    <title>RsvpForm</title>    

<script src="<%: Url.Content("~/Scripts/MicrosoftAjax.js") %>" type="text/javascript"></script>
 <script src="<%: Url.Content("~/Scripts/MicrosoftMvcValidation.js") %>" type="text/javascript"></script>
    
</head>
<body>
<h1>RSVP</h1>
    
<%Html.EnableClientValidation(); %>

<% using(Html.BeginForm()) { %>
<%: Html.ValidationSummary() %>
<p>Your name: <%: Html.TextBoxFor(x => x.Name) %></p>
<p>Your email: <%: Html.TextBoxFor(x => x.Email) %></p>
<p>Your phone: <%: Html.TextBoxFor(x => x.Phone) %></p>
<p>
Will you attend?
<%: Html.DropDownListFor(x => x.WillAttend, new[] {
new SelectListItem { Text = "Yes, I'll be there",
Value = bool.TrueString },
new SelectListItem { Text = "No, I can't come",
Value = bool.FalseString }
}, "Choose an option") %>
</p>
<input type="submit" value="Submit RSVP" />
<% } %>

<%: Html.ActionLink("Return to main menu", "Index") %>
</body>
</html>




 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 12:58 - pre 148 meseci
Kontroler ti nije dobar.
Ako je ModelState.IsValud == true, da li želiš da vratiš drugi View i proslediš mu model ili da uradiš return RedirectToAction("Thanks") i ispišeš neku generičku poruku?
U else bloku moraš da proslediš model kako bi na View-u mogao da ispišeš greške. Btw. da li ti puca aplikacija sa greškom da je model null kada uradiš postback?

POST akcija bi trebala ovako da izgleda:
Code:
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
    if (ModelState.IsValid)
    {
        // To do: E-mail guestResponse to the party organizer
        return View("Thanks", guestResponse);
    }
    else // Validation error, so redisplay data entry form
    {
        return View(guestResponse);
    }
}

 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:25 - pre 148 meseci
Citat:
Dejan Carić: Kontroler ti nije dobar.
Ako je ModelState.IsValud == true, da li želiš da vratiš drugi View i proslediš mu model ili da uradiš return RedirectToAction("Thanks") i ispišeš neku generičku poruku?
U else bloku moraš da proslediš model kako bi na View-u mogao da ispišeš greške. Btw. da li ti puca aplikacija sa greškom da je model null kada uradiš postback?

POST akcija bi trebala ovako da izgleda:
Code:
[HttpPost]
public ViewResult RsvpForm(GuestResponse guestResponse)
{
    if (ModelState.IsValid)
    {
        // To do: E-mail guestResponse to the party organizer
        return View("Thanks", guestResponse);
    }
    else // Validation error, so redisplay data entry form
    {
        return View(guestResponse);
    }
}


Nema greske, osim sto mi validacija nikako ne radi. Probao sam razne kombinacije js fajlova, i opet nista... gdje grijesim?


 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:34 - pre 148 meseci
U kontroleru.
Obrati pažnju na else block i return View(guestResponse); Kod tebe ima samo return View();
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:41 - pre 148 meseci
Tako sam i stavio, ali isto se ponasa.

Ista stvar... validacije nema.



 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:48 - pre 148 meseci
Stavio sam u webconfig:

Code:

<appSettings>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
  </appSettings>


I sada polovicno radi :(

Nema validacije dok mijenjam polja. Jedino sto se drugacije desi je na submit dugme... ne dozvoli mi post dok ne popravim greske.


 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:51 - pre 148 meseci
I sada ponovo ne radi... OMFG.

Da li neko ima primjer MVC3, kako uraditi obje validacije?


 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 15:55 - pre 148 meseci
Moja greška... Sad sam napravio test aplikaciju i radi sve ok kada se View-u ništa ne prosledi.
Ako su skripte učitane kako treba, onda ne znam šta je prob.

A primere možeš naći na ovom linku:
http://weblogs.asp.net/scottgu...et-mvc-2-model-validation.aspx
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 16:10 - pre 148 meseci
Pregledao sam link i po njemu sam i inicijalno i radio.

Nema veze... skontat cu, prije ili kasnije :)

Hvala na trudu i savjetima :)


 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation16.01.2012. u 16:11 - pre 148 meseci
Jedino da okačiš projekat ovde ili na PP pa da izdebagujem..
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
82.117.199.*

Sajt: www.dcaric.com


+26 Profil

icon Re: [MVC2 -C#] - Client Validation17.01.2012. u 11:15 - pre 148 meseci
Za svako polje moraš da imaš i ValidationMessageFor.
Code:
<%: Html.ValidationMessageFor(x => x.Name) %>
<%: Html.ValidationMessageFor(x => x.Email) %>
<%: Html.ValidationMessageFor(x => x.Phone) %>
...


Ukoliko za neko polje nemaš ValidationMessageFor uradiće se postback.

Zameni <%: Html.ValidationSummary(true, "Please fix these errors.")%> sa <%: Html.ValidationSummary(false, "Please fix these errors.")%> da bi video koja polja nisu validna.
 
Odgovor na temu

wex-alpha
Sarajevo

Član broj: 7580
Poruke: 845
*.dynamic.telemach.ba.



+13 Profil

icon Re: [MVC2 -C#] - Client Validation17.01.2012. u 19:10 - pre 148 meseci
Hvala :)
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: [MVC2 -C#] - Client Validation

[ Pregleda: 2808 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.