尝试在视图中的某些字段中强制文本,该视图通过Entity框架将记录添加到DB中。
我可以在视图EditorFor中执行此操作,还是可以在触发db.SaveChanges()之前在控制器中轻松地在所有字段中执行此操作?
答案 0 :(得分:1)
您可以使用辅助方法遍历ViewModel
服务器端的属性。
public T ViewModelToUpper<T>(T viewModel) where T : class
{
foreach (var property in viewModel.GetType().GetProperties())
{
var value = property.GetValue(viewModel, null);
if (value is string)
{
property.SetValue(viewModel, value.ToString().ToUpper());
}
}
return viewModel;
}
然后你可以致电viewModel = ClassName.ViewModelToUpper(viewModel)
。现在您不必担心每个string
属性都会这样做,因为无论如何都会发生这种情况。
答案 1 :(得分:0)
如果您愿意,可以使用jQuery在UI中执行此操作。从用户的角度来看,打字并将所有内容都转换为大写(我检查我的大写锁定)有点奇怪。 Convert to uppercase as user types using javascript
你的另一个选择,更好的IMO,就是在控制器中执行此操作。您可以在字符串上使用ToUpper()
。牢记全球化。