Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 15 odgovora
  • 4.387 pregleda

Najnovija ↓

[MVC2 -C#] - Client Validation 15.01.2012. u 18:52 · pre 180 meseci #1
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...
Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: [MVC2 -C#] - Client Validation 15.01.2012. u 23:47 · pre 180 meseci #2
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>
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: [MVC2 -C#] - Client Validation 15.01.2012. u 23:55 · pre 180 meseci #3
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.
Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: [MVC2 -C#] - Client Validation 16.01.2012. u 00:25 · pre 180 meseci #5

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>



Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: [MVC2 -C#] - Client Validation 16.01.2012. u 13:58 · pre 180 meseci #6
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);
    }
}
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: [MVC2 -C#] - Client Validation 16.01.2012. u 16:25 · pre 180 meseci #7
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?

Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: [MVC2 -C#] - Client Validation 16.01.2012. u 16:48 · pre 180 meseci #10
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.

Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: [MVC2 -C#] - Client Validation 16.01.2012. u 16:55 · pre 180 meseci #12
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
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: [MVC2 -C#] - Client Validation 17.01.2012. u 12:15 · pre 180 meseci #15
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.
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme