Не удалось загрузить ресурс: сервер ответил со статусом 500 (Внутренняя ошибка сервера) asp.net - PullRequest
0 голосов
/ 22 сентября 2018

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

namespace Login.Controllers
{
    public class LoginController : Controller
    {
        // GET: Login
        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Autherize(Login.Models.user usermodel)
        {

            using (LogEntities db = new LogEntities())
            {
                var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME && x.PASSWORD == usermodel.PASSWORD);
                if (userdetails == null)
                {
                    usermodel.ErrorMessage = "wrong inputs";
                    return View("Index", usermodel);
                }
                return View();
            }

        }
    }
}`

это мой взгляд:

    @using (Html.BeginForm("Autherize", "Login", FormMethod.Post))
    {
        <table>
            <tr>
                <td></td>
                <td> Login Form   </td>
            </tr>
            <tr>
                <td> @Html.LabelFor(model => model.USERNAME)   </td>
                <td> @Html.EditorFor(model => model.USERNAME)  </td>
            </tr>
            <tr>
                <td> @Html.ValidationMessageFor(model => model.USERNAME)   </td>
            </tr>
            <tr>
                <td> @Html.LabelFor(model => model.PASSWORD)   </td>
                <td> @Html.EditorFor(model => model.PASSWORD)  </td>
            </tr>
            <tr>
                <td> @Html.ValidationMessageFor(model => model.PASSWORD)   </td>
            </tr>
            <tr>
                <td colspan="2"> <label class="field-validation-error">@Html.DisplayFor(model => model.ErrorMessage)</label> </td>
            </tr>
            <tr>
                <td></td>
                <td> <input type="submit" name="login" value="login" /> </td>
            </tr>
        </table>
    }

</div>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

я получилэта ошибка. Как я могу исправить эту ошибку?

Представление 'Autherize' или его мастер не найден, или никакой механизм просмотра не поддерживает найденные местоположения.Были найдены следующие местоположения:

Ответы [ 4 ]

0 голосов
/ 22 сентября 2018

Сначала измените свой код с помощью этого

    public ActionResult Index()
    {
        return View();
    }

    [HttpPost]
    public ActionResult Index(Login.Models.user usermodel)
    {

        using (LogEntities db = new LogEntities())
        {
            var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME && x.PASSWORD == usermodel.PASSWORD);
            if (userdetails == null)
            {
                ViewData["ErrorMessage"] = "wrong inputs";
                return View("Index");
            }
            return View("Autherize");
        }

    }

и измените это @using (Html.BeginForm("Autherize", "Login", FormMethod.Post)) на @using (Html.BeginForm("Index", "Login", FormMethod.Post))

Затем на Index.cshtml странице

@if (ViewData["ErrorMessage"] != null)
{
   //Write your error message here.
   <h5>User name and password wrong</h5>
}

затемсоздать Autherize представление:

    public ActionResult Autherize()
    {
        return View();
    }

Если ваши ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ не равны NULL, перейдите к Autherize Вид.

0 голосов
/ 22 сентября 2018

Ваше имя метода Get - Index, поэтому вам нужно перейти на Authorize, чем только он сможет найти ваш View.

0 голосов
/ 22 сентября 2018

return View(); оператор пытается найти представление на основе имени метода.Так как, вы не упомянули ни одного имени просмотра.Вместо этого укажите название вида.

[HttpPost]
public ActionResult Autherize(Login.Models.user usermodel)
{
    using (LogEntities db = new LogEntities())
    {
        var userdetails = db.users.Where(x => x.USERNAME == usermodel.USERNAME 
            && x.PASSWORD == usermodel.PASSWORD);
        if (userdetails == null)
        {
            usermodel.ErrorMessage = "wrong inputs";
            return View("Index", usermodel);
        }
        return View('Autherize');
   }
}
0 голосов
/ 22 сентября 2018

Вы написали return View(); в методе Autherize, но не создали страницу просмотра для Autherize (Autherize.cshtml) внутри папки /Views/Login.

Вы можете создать Autherize.cshtml представлениеи верните его ИЛИ перенаправьте в уже существующее представление (вероятно, на страницу, на которую вы хотите, чтобы пользователь был перенаправлен после авторизации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...