关于ASP.NET MVC3的问题, 在线等
问题描述:现有两个实体类定义如下:publicclassUser{[Required(ErrorMessage="用户ID不得为空")]publicstringUserI...
问题描述:
现有两个实体类定义如下:
public class User
{
[Required(ErrorMessage="用户ID不得为空")]
public string UserID{get;set;}
[Required(ErrorMessage="用户名不得为空")]
public string UserName{get;set;}
[Required(ErrorMessage="用户密码不得为空")]
public string LoginPassword{get;set;}
...
}
public class news//新闻类
{
[Required(ErrorMessage="新闻ID不得为空")]
public string NewsID{get;set;}
[Required(ErrorMessage="新闻标题不得为空")]
public string NewsTitle{get;set;}
...
[Required(ErrorMessage="新闻作者不得为空")]
public User NewsAuthor{get;set;}
...
}
在数据库表中,新闻作者字段保存的是用户的ID,在编辑提交新闻时,验证总是要求必须补全NewsAuthor不得为空的字段,这样的话用户名和密码就要通过页面提交了,想请问能不能只提交用户的ID来通过验证。
两位的回答与现在的面向对象编程有点出入了,我已经用自定义验证解决了此问题,所以不再关注此问题了 展开
现有两个实体类定义如下:
public class User
{
[Required(ErrorMessage="用户ID不得为空")]
public string UserID{get;set;}
[Required(ErrorMessage="用户名不得为空")]
public string UserName{get;set;}
[Required(ErrorMessage="用户密码不得为空")]
public string LoginPassword{get;set;}
...
}
public class news//新闻类
{
[Required(ErrorMessage="新闻ID不得为空")]
public string NewsID{get;set;}
[Required(ErrorMessage="新闻标题不得为空")]
public string NewsTitle{get;set;}
...
[Required(ErrorMessage="新闻作者不得为空")]
public User NewsAuthor{get;set;}
...
}
在数据库表中,新闻作者字段保存的是用户的ID,在编辑提交新闻时,验证总是要求必须补全NewsAuthor不得为空的字段,这样的话用户名和密码就要通过页面提交了,想请问能不能只提交用户的ID来通过验证。
两位的回答与现在的面向对象编程有点出入了,我已经用自定义验证解决了此问题,所以不再关注此问题了 展开
展开全部
编辑新闻跟密码似乎没有什么联系.
1 你所谓的编辑 是插入,那么作者即为你本人,你可以通过 httpcontext.user.identity.name获取当前登录的用户名。
2 你所谓的编辑 是更新,那么你可以从数据库读出新闻所有信息,将原来的作者原封不动的放进去,只更新你更新的部分。
3 你不觉得你这个新闻model建的有问你吗? 对于作者,你完全可以只用string,为什么一定要使用 User 呢?编辑新闻肯定是需要登录之后才能编辑,在提交的时候,判断一下httpcontext.user.name 的值(未登录情况下的值,你可以设置断点监视一下),那么就不存在数据的不完整性。
4 当你真正需要使用到另一个Model的所有字段的时候,你才有必要关联这个Model.
5 就算如你现在的建模所述,public User NewsAuthor{get;set;} 而你却显示非空提示是 新闻作者。 User 不仅仅是为了作者名而设计的。
最后,需更改: public User NewsAuthor{get;set;} 为 public string NewsAuthor{get;set;}
我只从事MVC开发5周时间,第一周,通读了MVC2 (400页)。然后在工作中去摸索其中的套路,学习别人的模式,在模仿实践中,来验证原理。
我并不觉得自己是一个很善于学习的人,但是我是一个很勤于学习的人。
当你看完一个“国产的”MVC之后,在去看“红皮书”,对原理与实践进一步的加深。
我只是提个学习的建议,希望对你有所帮助。
1 你所谓的编辑 是插入,那么作者即为你本人,你可以通过 httpcontext.user.identity.name获取当前登录的用户名。
2 你所谓的编辑 是更新,那么你可以从数据库读出新闻所有信息,将原来的作者原封不动的放进去,只更新你更新的部分。
3 你不觉得你这个新闻model建的有问你吗? 对于作者,你完全可以只用string,为什么一定要使用 User 呢?编辑新闻肯定是需要登录之后才能编辑,在提交的时候,判断一下httpcontext.user.name 的值(未登录情况下的值,你可以设置断点监视一下),那么就不存在数据的不完整性。
4 当你真正需要使用到另一个Model的所有字段的时候,你才有必要关联这个Model.
5 就算如你现在的建模所述,public User NewsAuthor{get;set;} 而你却显示非空提示是 新闻作者。 User 不仅仅是为了作者名而设计的。
最后,需更改: public User NewsAuthor{get;set;} 为 public string NewsAuthor{get;set;}
我只从事MVC开发5周时间,第一周,通读了MVC2 (400页)。然后在工作中去摸索其中的套路,学习别人的模式,在模仿实践中,来验证原理。
我并不觉得自己是一个很善于学习的人,但是我是一个很勤于学习的人。
当你看完一个“国产的”MVC之后,在去看“红皮书”,对原理与实践进一步的加深。
我只是提个学习的建议,希望对你有所帮助。
展开全部
首先你的问题,我看了几遍,还是有点含糊。
麻烦下次把你的意思表达的清楚点
后来大概明白了你的意思,你在news类中把User类当作属性。你试下这样,可以把User类用string代替,只用UserId,这样就不会出现你所说的问题了。如果你还是在news类想用User类做属性,建议你在点击编辑的时候,传递一个newid,在编辑页面首先根据newid查询下new的信息,同时还有User的信息。在保存之前,给News的属性NewsAuthor(实例化User)赋值
麻烦下次把你的意思表达的清楚点
后来大概明白了你的意思,你在news类中把User类当作属性。你试下这样,可以把User类用string代替,只用UserId,这样就不会出现你所说的问题了。如果你还是在news类想用User类做属性,建议你在点击编辑的时候,传递一个newid,在编辑页面首先根据newid查询下new的信息,同时还有User的信息。在保存之前,给News的属性NewsAuthor(实例化User)赋值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询