である必要があります。MVC3を掘り起こすのが初めてで、問題が発生しました。辞書に渡されたモデルアイテムのタイプは... utです。この辞書はモデルタイプが
私は私のマスタービューを編集し、ユーザーがログインしていないときにすべてのページに表示されるように、ログインボックスをしたいんだ、私はこのコードを使用してこれをやった:。
@if (Request.IsAuthenticated)
{
<text>Welcome <strong>@User.Identity.Name</strong>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else
{
Html.RenderPartial("../Account/LogOn");
}
は、これは動作しますHomeControllerの私の通常のIndexメソッドに行くとき。私NewsControllerのIndexメソッドに行くとき
はしかし、私は次のエラーを取得する:
The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[LeagueSite.Models.News]', but this dictionary requires a model item of type 'LeagueSite.Models.LogOnModel'.
私は問題はなく、実際にそれのためのsollutionを知らないが何であるかを理解しています。
ビューのログオンは、この(標準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>
} `
任意のヒント/アイデア?
を扱うことができるでしょうが、私はリフレッシュをヒットしない限り、私はそれを歓迎し、ユーザのものを示す(前二回ログインする必要があります最初に私が提出を押した後) どうすればこの問題を防ぐことができますか? – Thomas
+1のため、動作しますが、レイアウトファイルが再び呼び出されます。これは非常に醜い – deltree