0
我有一个用户可以登录我的应用程序的登录表单。如果登录失败,则向客户端显示错误消息。模型状态无效时在浏览器上显示html代码?
因为我这个控制器有这个两个功能: -
[NopHttpsRequirement(SslRequirement.Yes)]
public ActionResult Login(bool? checkoutAsGuest)
{
if (_workContext.CurrentCustomer.IsRegistered())
{
if (Request.QueryString["returnUrl"]!=null)
{
return Redirect(Convert.ToString(Request.QueryString["returnUrl"]));
}
}
var model = new LoginModel();
model.UsernamesEnabled = _customerSettings.UsernamesEnabled;
model.CheckoutAsGuest = checkoutAsGuest.HasValue ? checkoutAsGuest.Value : false;
model.DisplayCaptcha = _captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage;
return View(model);
}
[HttpPost]
[CaptchaValidator]
public ActionResult Login(LoginModel model, string returnUrl, bool captchaValid)
{
//validate CAPTCHA
if (_captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage && !captchaValid)
{
ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha"));
}
if (ModelState.IsValid)
{
if (_customerSettings.UsernamesEnabled && model.Username != null)
{
model.Username = model.Username.Trim();
}
bool Active = true;
if (_customerRegistrationService.ValidateCustomer(_customerSettings.UsernamesEnabled ? model.Username : model.Email, model.Password, out Active))
{
var customer = _customerSettings.UsernamesEnabled ? _customerService.GetCustomerByUsername(model.Username) : _customerService.GetCustomerByEmail(model.Email);
//migrate shopping cart
_shoppingCartService.MigrateShoppingCart(_workContext.CurrentCustomer, customer);
//sign in new customer
_authenticationService.SignIn(customer, model.RememberMe);
if (!String.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
{
if (Request.QueryString["returnUrl"].ToString().Contains("search?q"))
{
string url = returnUrl;
if (Request.QueryString["select"] != null)
url = url + "&select=" + Request.QueryString["select"].ToString();
if (Request.QueryString["startdate"] != null)
url = url + "&startdate=" + Request.QueryString["startdate"].ToString();
if (Request.QueryString["enddate"] != null)
url = url + "&enddate=" + Request.QueryString["enddate"].ToString();
if (Request.QueryString["s_loc"] != null)
url = url + "&s_loc=" + Request.QueryString["s_loc"].ToString();
return Redirect(url);
// return Redirect(returnUrl + "&select=" + Request.QueryString["select"] == null ? "" : Request.QueryString["select"].ToString() + "&startdate=" + Request.QueryString["startdate"] == null ? "" : Request.QueryString["startdate"].ToString() + "&enddate=" + Request.QueryString["enddate"] == null ? "" : Request.QueryString["enddate"].ToString() + "&s_loc=" + Request.QueryString["s_loc"] == null ? "" : Request.QueryString["s_loc"].ToString());
}
return Redirect(returnUrl);
}
else
return RedirectToRoute("HomePage");
}
else
{
if (!Active)
ModelState.AddModelError("", _localizationService.GetResource("Account.Login.AccountNotactive"));
else
ModelState.AddModelError("", _localizationService.GetResource("Account.Login.WrongCredentials"));
}
}
//If we got this far, something failed, redisplay form
model.UsernamesEnabled = _customerSettings.UsernamesEnabled;
model.DisplayCaptcha = _captchaSettings.Enabled && _captchaSettings.ShowOnLoginPage;
return View(model);
}
当用户输入错误登录信息,我添加了一些错误的模型状态,然后再次显示视图客户适当味精。
但我的问题是它在浏览器上显示html代码,当模型状态无效时不呈现代码。
为什么这些发生,我无法找到任何解决方案。
你的意思是代替** BOLD **显示'BOLD''?你可以欣赏验证摘要如何显示在你的视图中吗? – dakait 2013-02-16 06:44:12
你能澄清一点吗? – 2013-02-16 06:47:11