Я новичок в изучении MVC3 и столкнулся с проблемой.
Я редактирую свой основной вид и хочу, чтобы поля входа отображались на каждой странице, когда пользователь не вошел в систему. Я сделал это с помощью этого кода:
@if (Request.IsAuthenticated)
{
<text>Welcome <strong>@User.Identity.Name</strong>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else
{
Html.RenderPartial("../Account/LogOn");
}
Это работает при переходе к моему обычному методу Index HomeController.
Однако при переходе к методу Index моего NewsController я получаю следующую ошибку:
Элемент модели, передаваемый в словарь, имеет тип 'System.Collections.Generic.List`1 [LeagueSite.Models.News]', но для этого словаря требуется элемент модели типа 'LeagueSite.Models.LogOnModel'.
Я понимаю, в чем проблема, но на самом деле не знаю ее решения.
Представление LogOn выглядит следующим образом (стандартное представление входа MVC3):
@model LeagueSite.Models.LogOnModel
@{
ViewBag.Title = "Log On";
}
<h2>Login</h2>
<p>
Please enter your user name and password. @Html.ActionLink("Register", "Register") if you don't have an account.
</p>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
@using (Html.BeginForm()) {
<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>
}
`
Какие-нибудь советы / идеи?