Ussing выдает ошибку в приложении asp / mvc - PullRequest
1 голос
/ 26 июля 2011

Я искал прямой способ сообщения об ошибках, в идеале всплывающих окон (javascript или иным образом) для пользователей, не использующих систему входа в систему в этой форме:

@model Blog.Models.ViewModels.LoginView
<!DOCTYPE html>
<html>
<body>
@using (Html.BeginForm()) {
<p>Your name: @Html.TextBoxFor(x => x.name) </p>
<p>Your password: @Html.TextBoxFor(x => x.password)</p>
    <input type="submit" value="Login" />    
}
</body>
</html>

но большинство найденных примеров используют метод onclick для метки. Вместо этого я хочу, чтобы это обрабатывалось этим контроллером:

private BlogModel model = new BlogModel();
[HttpPost]
    public ActionResult LoginForm(string name, string password)
    {
                SysUser user = model.SysUsers.Where(x => x.SysUserName == name).First();
                {
                    if (user != null && user.SysPassword == password)
                    {
                        Session["usrn"] = name;
                        return RedirectToAction("LoginSuccessful", "Users");
                    }
                    else
                    {
                        //display error//
                    }
                }

1 Ответ

2 голосов
/ 26 июля 2011

Я бы рекомендовал против всплывающего окна или диалогового окна оповещения ().Вместо этого я бы использовал стиль div для отображения ваших сообщений об ошибках.Если вы используете пользовательский интерфейс jQuery, вы можете попробовать мой плагин сообщений .Поскольку он отображается с использованием JavaScript, вы можете использовать его следующим образом:

Контроллер:

[HttpPost]
public ActionResult LoginForm(string name, string password)
{
    SysUser user = model.SysUsers.Where(x => x.SysUserName == name).First();
    {
        if (user != null && user.SysPassword == password)
        {
            Session["usrn"] = name;
            return RedirectToAction("LoginSuccessful", "Users");
        }
        else
        {
            ViewBag.LoginError = true;
        }
    }
}

Разметка с помощью jquery-сообщения:

<div id="loginError" style="display:none">Login Error...</div>

@if (ViewBag.LoginError == true)
{
    <script type="text/javascript">
        $("#loginError").message({type:"error"});
    </script>
}

Или, если вы предпочитаетебез jquery-сообщения:

@if (ViewBag.LoginError == true)
{
    <div id="loginError" class="error">Login Error...</div>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...