ユーザー情報を更新するためのフォームを作成しようとしています。ビューは次のようになりますフォームが例外をスローしています[引数の例外「同じキーを持つアイテムが既に追加されています」]
public class User : MembershipUser, IEntity
{
public virtual int Id { get; set; }
public virtual string Username { get; set; }
public virtual string Password { get; set; }
public virtual string Name { get; set; }
public virtual string Surname { get; set; }
public virtual Role Role { get; set; }
public virtual string ProfileImage { get; set; }
public virtual string About { get; set; }
}
:
using (Html.BeginForm("SaveUser", "BlogUser", FormMethod.Post, new { @class = "form-horizontal", enctype = "multipart/form-data" }))
{
<div class="form-group">
@Html.HiddenFor(x => x.Id)
@Html.HiddenFor(x => x.ProfileImage)
@Html.HiddenFor(x => x.UserName)
@Html.HiddenFor(x => x.Password)
@Html.HiddenFor(x => x.Role)
<div class="col-sm-10">
<label>Jméno</label>
</div>
<div class="col-sm-10">
@Html.TextBoxFor(x => x.Name, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Name)
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<label>Příjmení</label>
</div>
<div class="col-sm-10">
@Html.TextBoxFor(x => x.Surname, new { @class = "form-control" })
@Html.ValidationMessageFor(x => x.Surname)
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<label>Profilový obrázek</label>
</div>
<div class="col-sm-10">
<input type="file" name="picture" />
@if (!String.IsNullOrEmpty(Model.ProfileImage))
{
<img src="@Url.Content("~/Upload/UserImages/" + Model.ProfileImage)" />
}
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<label>Něco o mně</label>
</div>
<div class="col-sm-10">
@Html.TextAreaFor(x => x.About, new { @class = "form-control formatedText", @rows = 20 })
@Html.ValidationMessageFor(x => x.About)
</div>
</div>
<div class="form-group">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary btn-lg btn-block">Uložit</button>
</div>
</div>
}
私は右のユーザーを取得しています、私は右の詳細の列をあらかじめ入力しているが、送信した後、それが例外をスローし、私はモデルクラスのユーザーのための型付きビューを使用しています[引数例外 "同じキーを持つアイテムは既に追加されています"]私はSaveUser()コントローラメソッドを起動さえしないので、少なくとも私はそれをデバッグできます。私は問題がどこにあるか把握できません。手伝って頂けますか?あなたは、次の解決策を試みることができる
「バーチャル」と「ニュー」が混乱している可能性があります。後者はリンクされているSOの回答に記載されています。「新」の代わりにバーチャルとオーバーライドを使用すると、 *ダブルプロパティ。また、明示的には述べられていませんが、タグを指定すると、おそらくNHibernateの最高の機能のために 'virtual'が存在します。 –