Anouar2002 Ответов: 0

Проблема ошибка входа в ASP MVC


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

Адресная строка содержит новый # в конце.

Это мой код в контроллере :

[HttpPost]
    public ActionResult Login(FormCollection fc)
    {
        int res = dblayer.Admin_Login(fc["Email"], fc["Password"]);
        if (res == 1)
        {
            return View("~/Views/Client/Edit.cshtml");
        }
        else {
            return View("~/Views/Client/Create.cshtml");
        }
        return View();


    }


и это то, что я написал в виду :

<div class="login" id="login">
        @*@RenderPage("~/Views/Home/Login.cshtml")*@
        <div class="main-w3l">
            <div class="w3layouts-main" style="background-image:url('/template/web/images/bg3.jpg'); margin-top:50px;">
                <h2>Login Now</h2>
                @using (Html.BeginForm("Login", "Home", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
            {

                    @Html.AntiForgeryToken()
                    @Html.ValidationSummary(true)

                }


                <form action="#" method="post">
                    <input value="E-MAIL" name="Email" type="email" required="" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'E-Mail';}" />
                    <input value="PASSWORD" name="Password" type="password" required="" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'password';}" />
                    <span><input type="checkbox" />Remember Me</span>
                    <h6><a href="#">Forgot Password?</a></h6>
                    <div class="clear"></div>
                    <input type="submit" value="login" name="login">
                </form>
                <p>Don't Have an Account ?<a href="#" onclick="@("window.location.href='" + @Url.Action("Create", "Client") + "'") ;">Register Now</a></p>
            </div>
        </div><pre lang="HTML">


а это мой db. cs :

public int Admin_Login(string Email, string Password)
    {

        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DeliveryCon"].ConnectionString)) { 
        int res = 0;
        SqlCommand com = new SqlCommand("SP_Login", con);
        com.CommandType = CommandType.StoredProcedure;
        com.Parameters.AddWithValue("@Email", Email);
        com.Parameters.AddWithValue("@Password", Password);
        SqlParameter oblogin = new SqlParameter();
        oblogin.ParameterName = "@Isvalid";
        oblogin.SqlDbType = SqlDbType.Bit;
        oblogin.Direction = ParameterDirection.Output;
        com.Parameters.Add(oblogin);
        con.Open();
        com.ExecuteNonQuery();
        res = Convert.ToInt32(oblogin.Value);
        return res;
        }
    }


Что я уже пробовал:

проблема сохранялась, когда я пытался протестировать использование Javascfript следующим образом :

HttpPost]
    public ActionResult Login(FormCollection fc)
    {
        int res = dblayer.Admin_Login(fc["Email"], fc["Password"]);
        if (res == 1)
        {
            TempData["msg"] = " Login Successful !";

        }
        else {
            TempData["msg"] = " Email or Password is wrong !";

        }
        return View();
  }


и в виду этого сценария :
@{
    if (TempData["msg"] != null)
    {
        <script type="text/javascript">
            alert('@TempData["msg"]');
        </script>
    }
}

F-ES Sitecore

Вы создаете две формы, Html. BeginForm - это форма, и под ней у вас есть явный тег формы, в котором есть ваши поля. Действие этой формы -"#", поэтому, когда форма отправлена, она идет туда.

Вам нужно использовать BeginForm для создания формы, которая подчиняется вашему действию входа в систему.

Вам действительно нужно лучше понять основы MVC, я бы предложил пройти через учебник по музыкальному магазину, чтобы узнать, как работают формы и действия. Google "MVC music store".

Anouar2002

хорошо, спасибо за ответ, да, вы правы, это была ошибка, но когда я ее исправляю, проблема сохраняется

Anouar2002

Теперь это работает ! спасибо

0 Ответов