2016-06-21 6 views
1

이 질문에 불분명하거나 충분한 정보를 제공하지 못해 죄송합니다. 저는 CSHTML을 처음 접했고 정말 확실한 정보가 누락되었다고 말할 수 없습니다.CSHTML, EditorFor로 값을 변경하면 이전 값이 표시되지 않습니까?

현재 데이터베이스에서 특정 userCard 필드의 암호를 변경하는 내보기의 EditorFor()가 있습니다. 이 암호를 변경하면 텍스트 상자가 비어 있지만 이전 값이 표시 될 때마다 텍스트 상자를 비우고 싶습니다. 내 페이지의 사용자가 다른 페이지로 이동하여 계정을 암호없이 유지할 수있는 옵션이 너무 많아서 편집하기 전에 값을 삭제하는 것은 옵션이 아닙니다. 어떤 도움이 필요합니까?

기분을 상하게 EditorFor은 다음과 같습니다 :이 viewpage에 대한

<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 익명 형식에 값 속성을 추가 할 수

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

"V"를 "@value"로 대문자로 표시하면이 솔루션이 효과가있었습니다! 정말 고맙습니다. –

+0

아 맞아! 나는 확신 할 수있는 환경이 없었다. 기쁜 데 도움이되었습니다. – JDupont