使用EditorFor Razor视图强制大写

时间:2015-02-09 17:07:43

标签: asp.net-mvc entity-framework

尝试在视图中的某些字段中强制文本,该视图通过Entity框架将记录添加到DB中。

我可以在视图EditorFor中执行此操作,还是可以在触发db.SaveChanges()之前在控制器中轻松地在所有字段中执行此操作?

2 个答案:

答案 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()。牢记全球化。