Ошибка: представление «xx» или его мастер не найдены, или никакой движок представления не поддерживает поиск местоположений ... при входе - PullRequest
5 голосов
/ 06 августа 2011

При входе в систему войдите в систему с помощью.

Пользователь : admin Пароль : ххх

Я могу войти нормально.

Когда вы пытаетесь:

Пользователь : tavaresdemelo.adv.br Пароль : хх

Отображается ошибка:

Представление 'tavaresdemelo.adv.br' или его мастер не найден или двигатель представления поддерживает искомые местоположения. Следующие были найденные места: ~ / Views / account / tavaresdemelo.adv.br.aspx ~ / Views / account / tavaresdemelo.adv.br.ascx ~ / Views / Shared / tavaresdemelo.adv.br.aspx ~ / Просмотров / Общий / tavaresdemelo.adv.br.ascx ~ / Просмотров / аккаунт / tavaresdemelo.adv.br.cshtml ~ / Просмотры / аккаунт / tavaresdemelo.adv.br.vbhtml ~ / Просмотры / Общие / tavaresdemelo.adv.br.cshtml ~ / Просмотры / Общие / tavaresdemelo.adv.br.vbhtml

Account Controller

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

[HttpPost]
public ActionResult LogOn(string userName, string password, string returnUrl)
{
    if (ModelState.IsValid)
    {
        if (Membership.ValidateUser(userName, password))
        {
            FormsAuthentication.SetAuthCookie(userName, false);
            if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
                return Redirect(returnUrl);
            return RedirectToAction("Index", "Home");
        }
        ModelState.AddModelError("", "Usuário ou senha estão inválidos");
    }

    // If we got this far, something failed, redisplay form
    return View(userName);
}

public ActionResult LogOff()
{
    FormsAuthentication.SignOut();
    return RedirectToAction("Index", "Home");
}

Просмотр входа

@model string
@{
    ViewBag.Title = "Login";
}

<div id="login">
    <h2>@ViewBag.Title</h2>
    @Html.ValidationSummary(true, "Erro ao tentar efetuar o login.")
    @using (Html.BeginForm())
    {
        <fieldset class="login">
            <legend>Entre com seu usuário e senha</legend>
            <div class="inline">
                @Html.Label("userName", "Usuário: ")
                @Html.TextBox("userName", Html.Encode(Model))
                @Html.ValidationMessage("userName")
            </div>

            <div class="inline">
                @Html.Label("password", "Senha: ")
                @Html.Password("password")
                @Html.ValidationMessage("password")
            </div>

            <div class="form-buttons">
                <input type="submit" class="button" value="Login" title="Login" />
            </div>
        </fieldset>
    }
</div>

Ответы [ 2 ]

9 голосов
/ 06 августа 2011

Эта строка

return View(userName);

указывает платформе загрузить представление с именем userName (или в этом случае tavaresdemelo.adv.br). Вот почему вы получаете сообщение об ошибке, что он не может найти представление с именем tavaresdemelo.adv.br.aspx и т. Д. Я думаю , что вы пытаетесь сделать, будет

return View();

или

return View("logon");

или каково бы ни было название представления, которое вы пытаетесь перезагрузить.

Надеюсь, это поможет!

1 голос
/ 15 октября 2012

Для других случаев этой ошибки return View("logon") не работает для меня.Я обнаружил, что return RedirectToAction("View", "Controller") действительно решает эту проблему.

...