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);
}
"V"를 "@value"로 대문자로 표시하면이 솔루션이 효과가있었습니다! 정말 고맙습니다. –
아 맞아! 나는 확신 할 수있는 환경이 없었다. 기쁜 데 도움이되었습니다. – JDupont