Ресурс не может быть найден MVC 5 - PullRequest
0 голосов
/ 10 мая 2018

У меня есть два текстовых поля и кнопка (@ HTML.ActionLink) в представлении Login , и я хочу открыть представление page , в котором в зависимости от имени пользователя и пароля написано в этих текстовых полях я получаю соответствующего пользователя из базы данных и передаю его в представлении page , чтобы увидеть подробности об этом пользователе.

У меня есть проблема с ресурсом . когда эта проблема появляется в браузере, ссылка модифицируется так (я думаю, что проблема будет здесь):

http://localhost:50105/Users/LoginPage?Length=5

это моя кнопка:

@Html.ActionLink("Login", "LoginPage", "Users", new { @class = "btn btn-default", @style = "Color:red" })

это мой LoginPage метод действия:

[HttpPost]
public ActionResult LoginPage([Bind(Include = "UserName,Password")] User user)
{
   var per = db.Users.Where
       (x => x.Password == user.Password && x.UserName == user.UserName)
            .FirstOrDefault();

        return View("Page",per);
}

это моя страница просмотр:

@model MVCProject.Models.User

@{
    ViewBag.Title = "Page";
}

<h2>Page</h2>

<div>
    <h4>User</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.FirstName)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.FirstName)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.LastName)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.LastName)
        </dd>

    </dl>
</div>

это мой пользователь класс:

public class User
{
    public int UserID { get; set; }
    public string UserName { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Password { get; set; }
}

это мой метод RegisterRoutes в RouteConfig класс:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");



    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
}

это мой логин просмотр:

@model MVCProject.Models.User
@{
    ViewBag.Title = "Login";
}

</br>
<h2 align="Center">Login</h2>



<div>
    </br>
    </br>
    </br>

    <div align="center">
        @Html.EditorFor(model => model.UserName, new { htmlAttributes = new 
{ @class = "form-control", @placeHolder = "UserName" } })
    @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })

    </br>

    @Html.EditorFor(model => model.Password, new { htmlAttributes = new { 
@class = "form-control", @placeHolder = "Password", @type="password"} })
    @Html.ValidationMessageFor(model => model.Password, "", new { @class = 
"text-danger" })

    </br>
</div>

<div class="form-group">
    <div class="col-md-offset-2 col-md-10" align="center">
        @Html.ActionLink("Login", "LoginPage", "Users", new { @class = "btn btn-default", @style = "Color:red" })
    </div>
</div>

1 Ответ

0 голосов
/ 10 мая 2018

Вы должны поместить свои элементы управления в форму и сделать кнопку типа отправки для публикации данных вашей модели на контроллере.

@using (Html.BeginForm("LoginPage", "Users", FormMethod.Post))
    {
    <div align="center">
            @Html.EditorFor(model => model.UserName, new { htmlAttributes = new 
    { @class = "form-control", @placeHolder = "UserName" } })
        @Html.ValidationMessageFor(model => model.UserName, "", new { @class = "text-danger" })

        </br>

        @Html.EditorFor(model => model.Password, new { htmlAttributes = new { 
    @class = "form-control", @placeHolder = "Password", @type="password"} })
        @Html.ValidationMessageFor(model => model.Password, "", new { @class = 
    "text-danger" })

        </br>
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10" align="center">
           <input type="submit" value="Login" />
        </div>
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...