2016-06-21 10 views
1

この質問が不明な場合や十分な情報を提供していない場合は申し訳ありませんが、私はCSHTMLを初めて使用しています。CSHTML、EditorForで値を変更すると、古い値が表示されないようにしますか?

私は現在データベース内の特定のuserCardフィールドのパスワードを変更する私のビューでEditorFor()を持っています。このパスワードが変更されているとき、私はテキストボックスを空にしたいと思いますが、古い値を表示するたびにします。編集前の値を削除することは選択肢ではありません。私のページにはユーザーが別のページに移動してアカウントをパスワードなしにするオプションが多すぎます。どんな助け?

問題のEditorForは以下の通りです:

<div class="form-group"> 
      <div class="col-md-10"> 
       <h5>Enter a New Passcode</h5> 
      </div> 
      <div class="col-md-10"> 
       @Html.EditorFor(model => model.userCard.password, new { htmlAttributes = new { @class = "form-control"} }) 
       @Html.ValidationMessageFor(model => model.userCard.password, "", new { @class = "text-danger" }) 
      </div> 
     </div> 

このビューページのコントローラの方法は以下の通りです:

public ActionResult EditPasscode(int? id) 
    { 
     if (id == null) 
     { 
      return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
     } 

     UserCardOBJ userCardOBJ = new UserCardOBJ(); 
     userCardOBJ.userCard = db.UserCards.Find(id); 

     if (userCardOBJ.userCard == null) 
     { 
      return HttpNotFound(); 
     } 
     return View(userCardOBJ); 
    } 

    [HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult EditPasscode([Bind(Include = "ID,password")] UserCard userCard) 
    { 

     if (ModelState.IsValid) 
     { 
      //db.Entry(userCard).State = EntityState.Modified; 
      db.UserCards.Attach(userCard); 
      db.Entry(userCard).Property(model => model.password).IsModified = true; 
      db.SaveChanges(); 
      return RedirectToAction("Index"); 
     } 
     return View(userCard); 
    } 

答えて

0

あなたは、渡されたhtmlAttribute匿名型にvalueプロパティを追加することができ

@Html.EditorFor(model => model.userCard.password, new { @class = "form-control", @value = "" } }) 
+0

"V"を "@value"で大文字にしたとき、この解決策は成功しました!どうもありがとうございます。 –

+0

ああそうだよ!私は確かめる環境がなかった。それが助けてくれてうれしい。 – JDupont

関連する問題