ciao a tutti da poco sto guardando MVC e sto facendo varie prove per capire come funziona.
Ieri mi sono imbattuto in una cosa divertente e spero che qualcuno mi possa aiutare.
Ho creato una pagina master,dove all'interno ho messo un ViewUserControl
il quale lo messo dentro la cartella Shared cosi che possa essere visto ovunque.
Fin qua ci siamo :)
Questa pagina non è altro un menu di login con il relativo form.
Ecco come è fatta la pagina
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script src="../../Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script src="../../Scripts/jquery.validate.js" type="text/javascript"></script>
<script type="text/javascript">
// Prima versione del codice JavaScript
$(document).ready(function () {
var btnLogin = $("input#btnLogin");
// Codice per la validazione lato client
var regFormRegister = $("#fLogin");
regFormRegister.validate({
// Regole di validazione
rules: {
username: { required: true, minlength: 3 },
password: { required: true, minlength: 5 }
},
// Messaggi di errore personalizzati
messages: {
username: {
required: "Username richiesto.",
minlength: "Username deve essere lunga almeno 3 caratteri."
},
password: {
required: "Password richiesta.",
minlength: "La password deve essere lunga almeno 5 caratteri."
}
}
});
});
</script>
<div id="dvLogin" class="Login">
<% if (Session["username"] == null)
{ %>
<div id='content'>
<div id='basic-modal'>
<a href='#' class='basic'>Login</a> -
<%: Html.ActionLink("Registrazione", "Register", "Registrazione")%>
</div>
<div id="basic-modal-content">
<table style="text-align: center; margin-top: auto;" width="100%">
<tr>
<td>
<img id="Img1" src="~/Content/images/icologin.png" runat="server" alt="iconaLogin" />
</td>
<td>
<form action="/Login/Login" id="fLogin" method="post">
<p>
Username
<%= Html.TextBox("username")%>
<label id="chkusername">
</label>
</p>
<p>
Password
<%= Html.TextBox("password")%>
<label id="chkpassword">
</label>
</p>
<p>
<input type="submit" value="Login" id="btnLogin" />
</p>
</form>
</td>
</tr>
</table>
</div>
</div>
<% }
else
{ %>
<%: ViewData["Username"]%>
<% } %>
</div>
public class LoginController : Controller
{
//
// GET: /Login/
public ActionResult Login()
{
return View();
}
[HttpPost]
public ActionResult Login(string username, string password)
{
return View();
}
}
Nel frattempo ho creato anche una pagina di Registrazione che funziona perfettamente.
IL PROBLEMA.
Ora se io mi trovo nella pagina di registrazione, e clicco su login in alto a destra , mi compare (come si vede dal codice sopra) un lightbox con la form di login.
Ora. al click sul pulsante lui va in POST,il problema che manda in post anche la pagina sotto cioè quella di registrazione XD XD.
DOMANDE:
1. Perchè mi va in post tutta la pagina? non dovrebbe andar in post solo il form che include il login?
2. Altra domanda in IE se clicco sul pulsante mi si chiude la lightbox perchè???? :( in chrome no.
3. Ultima domanda, al click sul pulsante mi aspettavo che entrasse nel controller Login e public ActionResult Login, ma non entra non capisco :(
Ps
se vado direttamente nel login
http://localhost:60748/Login/Login
tutto funziona :(
Mi sfugge qualcosa?
Grazie a tutti
Modificato da Stefano_VR il 22 novembre 2011 09.18 -
Modificato da Stefano_VR il 22 novembre 2011 09.26 -
Modificato da Stefano_VR il 22 novembre 2011 09.31 -