我在mu模型中有一个属性,我不希望用户在编辑操作期间访问其值。 如果我不在编辑视图中包含它,它将获得一个空值。如果我将其作为隐藏值包含在内,用户可以通过浏览器中的“查看源代码”选项查看它的值。
任何提示? 这是我编辑动作的ProfileController代码
public ActionResult Edit()
{
Profile profile = null;
if (_db.Profiles.Count() > 0)
profile = _db.Profiles.Single(p => p.UserName == User.Identity.Name);
if (null == profile)
return RedirectToAction("Create");
else
return View(profile);
}
//
// POST: /Profile/Edit/5
[HttpPost]
public ActionResult Edit( Profile newProfile)
{
try
{
TryUpdateModel(newProfile);
if (ModelState.IsValid)
{
_db.Entry(newProfile).State = EntityState.Modified;
_db.SaveChanges();
if (newProfile.Confirmed)
{
return RedirectToAction("Index", "Home");
}
else
return RedirectToAction("Confirm");
}
else
return View(newProfile);
}
catch
{
return View();
}
}
答案 0 :(得分:0)
在这种情况下,您正在编辑数据库中的现有条目。所以你可以:
这样,您就不必在页面中包含确认编号。
答案 1 :(得分:0)
这是一个解决方案。在注册期间,当在DB中创建新记录时,为该用户为GUID()创建一个新字段。
new Guid()
然后,每当用户想要编辑他/她的个人资料时,您将拥有该guid作为URL参数之一。从数据库中提取数据时,只需获取与GUID匹配的记录。
var record = repository.FirstOrDefault(x => x.Guid == 'guid from url');
记录=>将保留您的用户数据。
这样您就不会以任何方式显示任何验证码。