实体框架6/MVC5-向Create方法传递不完整的实体和其他参数

本文关键字:实体 参数 其他 框架 MVC5- Create 方法 | 更新日期: 2023-09-27 18:24:44

我的应用程序有一个Create视图,在该视图中,用户被要求输入视图实体的某些值,其他值来自非输入(当前用户的用户名、组织内当前用户的办公室以及办公室所在的地区)。我修改了Create方法如下:

public ActionResult Create([Bind(Include="User input value1,value2,value3")] MyEntity myentity,
     string Username, int OfficeId, int RegionId)

然后在测试(ModelState.IsValid)之前的方法中:

myentity.OfficeID = OfficeId;
myentity.RegionID = RegionId;
myentity.UserID = Username";
myentity.DateEntered = DateTime.Now();

记录是按预期插入数据库的,但我的问题是,我是否应该这样做?

提前谢谢。

实体框架6/MVC5-向Create方法传递不完整的实体和其他参数

如果您设置的字段显式地具有验证注释,您可能会遇到一些问题。例如,如果OfficeId是模型上的必填字段,那么ModelState将出现错误,因为在进行验证时它不存在。如果是这样的话,我会为你想从用户那里收集的数据使用一个单独的视图模型,然后根据它和其他值构建你的域模型。如果这些字段没有验证注释,那么我看不出有任何理由说明您的操作方式不起作用。