Как включить форму входа на домашней странице индекса в MVC - PullRequest
0 голосов
/ 21 апреля 2010

Мне действительно нужна твоя помощь для этого. Я относительно новичок в программировании, и мне нужна помощь в чем-то, что может быть легко для опытного программиста.

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

У меня возникли некоторые проблемы.

Сначала мне нужно, чтобы объект продукта также отображался на моей домашней странице индекса.

Что я сделал, так это то, что я добавил объект продукта в LogOnModel, который они предоставляют в классе AccountModels, и создал UserControl (частичное представление), копирующий содержимое представления LogOn.aspx. Теперь мой Home index.aspx, а также мое частичное представление наследуют класс LogOnModel.

Я вижу форму входа в систему на моей домашней странице индекса и объект моего продукта, НО форма входа никогда не бывает пустой. Последнее имя пользователя и пароль всегда отображаются там.

Я знаю, что, должно быть, что-то забыл или сделал что-то не так, или, как это сделал, совершенно неправильно !!

Пожалуйста, не могли бы вы дать мне совет Thks

 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<CoderForTradersSite.Models.LogOnModel>" %>

<h4>Login Form</h4>
    <p>
        Please enter your username and password. <%= Html.ActionLink("Register", "Register") %> if you don't have an account.
    </p>

    <% using (Html.BeginForm()) { %>
        <%= Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.") %>
        <div>
            <fieldset>
                <legend>Account Information</legend>

                <div class="editor-label">
                    <%= Html.LabelFor(m => m.UserName) %>
                </div>
                <div class="editor-field">
                    <%= Html.TextBoxFor(m => m.UserName) %>
                    <%= Html.ValidationMessageFor(m => m.UserName) %>
                </div>

                <div class="editor-label">
                    <%= Html.LabelFor(m => m.Password) %>
                </div>
                <div class="editor-field">
                    <%= Html.PasswordFor(m => m.Password) %>
                    <%= Html.ValidationMessageFor(m => m.Password) %>
                </div>

                <div class="editor-label">
                    <%= Html.CheckBoxFor(m => m.RememberMe) %>
                    <%= Html.LabelFor(m => m.RememberMe) %>
                </div>

                <p>
                    <input type="submit" value="Log On" />
                </p>
            </fieldset>
        </div>
    <% } %> 

Ответы [ 2 ]

0 голосов
/ 21 апреля 2010

Начните с изучения того, как это работает. Что такое М, В и С, и как вы заставляете их общаться. Если вы просто возьмете стартовое решение и начнете добавлять кучу вещей поверх него, не задумываясь, ваше приложение очень быстро запутается.

Например, добавление продукта в LogonModel не имеет смысла. Вы должны создать свою собственную модель для продукта и создать строго типизированный частичный вид или DisplayModel, чтобы он мог легко отображать его. Создайте новую ViewModel для ваших страниц, которая содержит нужные элементы вашей страницы, и назовите их чем-нибудь, что делает смысл для вас.

Вы можете начать здесь, например: Создайте свое первое приложение ASP.NET с ASP.NET MVC

0 голосов
/ 21 апреля 2010

Здесь нужно учесть 2 вещи. 1) Вам не нужно было смешивать продукт и модели входа в систему. Имейте форму входа в систему в виде частичного представления и создайте действие в контроллере учетной записи, которое будет возвращать частичное представление:

public ActionResult LogonModule()
{
    return PartialView();
}

Затем на странице индекса используйте следующий фрагмент для отображения панели входа: <%: Html.RenderAction("LogonModule", "Account") %> Таким образом, эта панель будет полностью независима от модели главной страницы.Он добавит модуль входа в систему на стороне сервера, поэтому он будет полностью прозрачен для пользователя. Сгенерированный html абсолютно одинаков.

2) Вы говорите, что поля логина / пароля предварительно заполнены.Вы полностью уверены, что это не браузер, заполняющий эти поля?Большинство браузеров делают это, и это может привести к путанице :) Проверьте HTML.Если логина и пароля нет - тогда все в порядке ^ _ ^

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