Comment Montrer Échec de la Validation du Message dans une fenêtre contextuelle dans MVC
Je suis confronté à un problème, je veux montrer le message d'erreur dans une fenêtre Contextuelle dans MVC4 l'aide d'un Rasoir .Je suis à l'aide de différentes Message de Validation dans mon Modèle et sur le formulaire de Soumission s'il est omis, je veux vous montrer le même message de validation qui j'ai donné dans mon modèle . Je suis le partage de mon modèle,Vue et contrôleur de Code avec vous .Peut quelqu'un m'aider à faire ce
Modèle
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Configuration;
namespace Employee_Mgmt_System.Models
{
public class LoginScreen
{
[Required(ErrorMessage = "EmployeeID Cannot be Blank")]
public string EmpID
{
get;
set;
}
[Required(ErrorMessage = "Password Cannot be kept Blank")]
[DataType(DataType.Password)]
public string Password
{
get;
set;
}
}
}
Contrôleur
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Employee_Mgmt_System.Models;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace Employee_Mgmt_System.Controllers
{
public class LoginScreenController : Controller
{
//
//GET: /LoginScreen/
LoginScreen Ls = new LoginScreen();
[HttpPost]
public ActionResult Login(LoginScreen LogScreen)
{
if (ModelState.IsValid)
{
return RedirectToAction("HomeScreen", "HomeScreen");
}
return View("LoginScreen");
}
public ActionResult LoginScreen()
{
return View("LoginScreen");
}
}
}
Vue
@model Project.LoginScreen
@{
ViewBag.Title = "LoginScreen";
}
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<h2>LoginScreen</h2>
<body>
@using(Html.BeginForm("login","loginscreen",FormMethod.Post))
{
@Html.ValidationSummary(true)
<div style="color:red;text-align:center">
<fieldset>
<legend>Validation Summary</legend>
@Html.ValidationMessageFor(m=>m.EmpID)
<br />
@Html.ValidationMessageFor(m=>m.Password)
</fieldset>
</div>
<br />
<br />
<div>
<table border="1" style="background-color:activeborder">
<tr>
<td>
@Html.LabelFor(@m=>@m.EmpID)
</td>
<td>
@Html.TextBoxFor(@m=>@m.EmpID)
</td>
</tr>
<tr>
<td>
@Html.LabelFor(@m=>@m.Password)
</td>
<td>
@Html.PasswordFor(@m=>@m.Password)
</td>
</tr>
</table>
<input type="submit" value="login" />
</div>
}
</body>
Vous devez vous connecter pour publier un commentaire.
Voici un moyen simple de le faire:
Et de votre point de vue:
Ce n'est pas testée, mais devrait vous donner l'idée.
ValidationSummary
. Utilisation\n
au lieu de<li>
.Comme une alternative et si vous êtes en utilisant bootstrap essayer mon petit récapitulatif de la validation du contrôle que j'ai construit pour un problème similaire/voulait une meilleure façon de contrôler le style de la norme récapitulatif de la validation du contrôle.
https://github.com/JellyMaster/MVCBootstrap
C'était un résumé de validation contrôle qui peut fonctionner dans un certain nombre de modes:
Panneau d'alerte, les caisses de l'alerte et de modal.
Vous pouvez consulter les exemples d'images dans le projet pour voir à quoi il ressemble.
Il peut être personnalisé de vue du style et de montrer des erreurs de modèle ainsi que des messages d'erreur personnalisés. Vous pouvez également inclure vos propres classes CSS dans le contrôle de remplacer la valeur par défaut de bootstrap styles.
De mettre en œuvre un tel mécanisme d'affichage vous pouvez
Exemple de code ci-joint. Jetez un coup d'oeil au code. Note: je n'ai pas encore testé.
Affichage de Page(Page de login.cshtml)
Vue Partielle (loginPartial.cshtml)
méthode d'Extension pour afficher le message
Espérant que cela puisse aider. Merci.
Je ne suis pas sûr si vous avez encore besoin d'aide sur votre que la question est de 4 ans, mais si quelqu'un trébuche sur elle, je voudrais des conseils pour la situation est comme cela, il est préférable d'Ajax.BeginForm au lieu de HTML.Beginform, pour montrer la validation du sans recharger la page, voici le tutoriel de l'article pour cette
https://qawithexperts.com/article/asp.net/validate-pop-up-modal-using-ajaxbeginform-in-c-mvc/52
et si vous êtes nouveau à l'Ajax.BeginForm vous pouvez également lire les
https://qawithexperts.com/article/asp.net/use-of-ajaxbeginform-in-aspnet-mvc-c/39
Remarque: je suis l'auteur de deux articles, mais AJAX.Beginform que vous devriez utiliser.