Modell im Layout bricht andere Seiten

Ich habe einen Designfehler, der auf meiner mangelnden MVC4-Erfahrung beruht.

Das Problem ist, dass ich ein Modell in meinem Layout habe ...

@model BasicFinanceUI.Models.LoginModel
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    <link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet"/>

    <title>@ViewBag.Title</title>
</head>

Der Grund, warum es in meinem Layout ist, ist, dass die Schaltfläche Anmelden auf dem Layoutbildschirm angezeigt wird und ein modales Popup-Fenster mit Freunden geöffnet wird, die das Modell verwenden.

Unten im Layout habe ich also:

<div class="modal fade" id="login" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h3>Login</h3>
                <div class="modal-body">
                    @using (Html.BeginForm("LoginUser", "User"))
                    {
                        <p>
                            @Html.LabelFor(x => x.Username)
                            @Html.TextBoxFor(x => x.Username)
                        </p>
                        <p>
                            @Html.LabelFor(x => x.Password)
                            @Html.PasswordFor(x => x.Password)
                        </p>
                        <p>
                            @Html.LabelFor(x => x.RememberMe)
                            @Html.CheckBoxFor(x => x.RememberMe)
                        </p>
                        <div class="modal-footer">
                            <input type="submit" value="Login" name="btn_login" class="btn btn-default" />
                            <a class="btn btn-primary" data-dismiss="modal">Cancel</a>
                        </div>
                    }
                </div>
            </div>
        </div>
    </div>

Ich habe auch eine Login- und Logout-Schaltfläche in meinem / Home / Index, sodass der Benutzer auf der Standardseite die beiden Login-Schaltflächen sieht. Eine auf der Hauptseite und eine in der Kopfzeile / im Menü, die gemeinsam genutzt werden.

Ich denke, das Modell und wahrscheinlich der gesamte Anmeldebildschirmcode auf der Layout-Seite könnten hier das Problem sein. Wie soll ich das umsetzen?

Ich benötige die Schaltfläche Anmelden auf der Seite Index.cshtml (Standard) und die Schaltfläche im Menü Layout oben. Und beide verwenden den oben gezeigten Modell-Popup-Code.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage