2016-06-21 51 views
1

如果这个问题不清楚,或者我没有提供足够的信息,我很抱歉,我是CSHTML的新手,并且不知道我是否错过了一些令人难以置信的明显信息。CSHTML,使用EditorFor更改值,不希望显示旧值?

我目前在我的视图中有EditorFor()更改数据库中特定userCard字段的密码。当这个密码被更改时,我希望该文本框是空的,但每次显示旧值。在编辑之前删除值不是一个选项,因为我的页面有太多的选项供用户转到不同的页面,并且使该帐户无密码。任何帮助?

的违规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> 

此的ViewPage控制器方法如下:

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

当我在“@value”中大写“V”时,该解决方案奏效!非常感谢。 –

+0

哦,是的,没错!我没有一个确定的环境。很高兴帮助。 – JDupont