2016-08-21 10 views
1

ユーザー情報を更新するためのフォームを作成しようとしています。ビューは次のようになりますフォームが例外をスローしています[引数の例外「同じキーを持つアイテムが既に追加されています」]

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()コントローラメソッドを起動さえしないので、少なくとも私はそれをデバッグできます。私は問題がどこにあるか把握できません。手伝って頂けますか?あなたは、次の解決策を試みることができる

答えて

0

私はそれを考え出しました。私は、親クラスMembershipUserのusernameというプロパティを持っていました。

0

An item with the same key has already been added

をモデルが二度同じプロパティが含まれているように、あなたはそれが必要でない場合はプロパティから仮想キーワードを取り出したいことがありそうです。

も参照してください:https://msdn.microsoft.com/en-us/library/9fkccyh4.aspx

+0

「バーチャル」と「ニュー」が混乱している可能性があります。後者はリンクされているSOの回答に記載されています。「新」の代わりにバーチャルとオーバーライドを使用すると、 *ダブルプロパティ。また、明示的には述べられていませんが、タグを指定すると、おそらくNHibernateの最高の機能のために 'virtual'が存在します。 –

関連する問題