我有一个包含表用户的数据库。我从数据库生成EF .edmx,然后我可以通过以下方式访问用户:
public ActionResult Index()
{
var obj = context.Users.ToList();
return View(obj);
}
哪个好我的问题是当我进行编辑时:
public ActionResult Edit(Guid id)
{
var obj = context.Users.Where(c => c.UserId == id).SingleOrDefault();
return View(obj);
}
我不知道如何访问User模型来添加验证消息?我希望看到类似的东西:
public class User
{
[Required]
[Display(Name = "username")]
public string UserName { get; set; }
{
但是我没有,我是新手,并且在从数据库生成时,并不真正了解如何访问/编辑此模型。任何建议教程将不胜感激。
答案 0 :(得分:3)
您可以在与模型相同的命名空间中创建一个包含元数据的分部类:
[MetadataType(typeof(IPConfigMetadata))]
public partial class IPConfig
{
internal sealed class IPConfigMetadata
{
private IPConfigMetadata() { }
[RegularExpression(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b", ErrorMessage = "Must be a valid IP Address")]
public string CommanderIP { get; set; }
[Range(1024, 65535)]
public int IPPort { get; set; }
}
}
答案 1 :(得分:3)
看看你是否首先使用代码你可以使用MISHA建议的用户,你首先使用数据库(因为你正在从DB生成edmx)。在这种情况下,mvc-validation自动挂钩 - 你提供了模型的元数据。
您可以按以下方式创建元数据
namespace Your_Models_NameSpace
{
[MetadataType(typeof(UserMetaData))]
public partial class User
{
public class UserMetaData
{
[DisplayName("User Name")]
[Required(ErrorMessage = "Please provide a valid username")]
public object UserName { get; set; }
}
}
}
答案 2 :(得分:1)
检查this帖子。
您可以执行以下操作:
public class User
{
[Required(ErrorMessage = "Username is required")]
public string UserName { get; set; }
{
然后在你的行动中你会这样做:
public ActionResult Edit(User user)
{
if(ModelState.IsValid)
{
// Save user
}
return View(user);
}