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

时间:2014-09-25 21:38:48

标签: c# asp.net-mvc entity-framework

我的应用程序有一个创建视图,其中要求用户输入视图实体的某些值,其他值来自非输入(当前用户的用户名,组织内当前用户的办公室以及办公室所在的区域)在)。我修改了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();

记录按预期插入到数据库中,但我的问题是这是否应该如何进行呢?

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您明确设置的字段具有验证注释,则可能会遇到一些问题。例如,如果OfficeId是模型上的必填字段,则ModelState会出现错误,因为验证发生时它不存在。如果是这种情况,我会为您要从用户收集的数据使用单独的viewmodel,然后根据该值和其他值构建域模型。如果这些字段没有验证注释,那么我看不出为什么你这样做的方法不起作用。