我的应用程序有一个创建视图,其中要求用户输入视图实体的某些值,其他值来自非输入(当前用户的用户名,组织内当前用户的办公室以及办公室所在的区域)在)。我修改了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();
记录按预期插入到数据库中,但我的问题是这是否应该如何进行呢?
提前致谢。
答案 0 :(得分:0)
如果您明确设置的字段具有验证注释,则可能会遇到一些问题。例如,如果OfficeId
是模型上的必填字段,则ModelState
会出现错误,因为验证发生时它不存在。如果是这种情况,我会为您要从用户收集的数据使用单独的viewmodel,然后根据该值和其他值构建域模型。如果这些字段没有验证注释,那么我看不出为什么你这样做的方法不起作用。