1

如何实现以下场景: 我想要一个创建userProfile帐户的注册向导。在那种形式中,我有一个companyName(必需的)。然后,我将使用它companyName并在companyInfromation表格中开始记录。此表中的所有列都应该可以为空,因为我开始记录用户注册。

用户注册后,系统会提示他们需要完成公司信息的填写,因此他们将被带到公司信息表。

现在这是我的问题,我怎样才能使这个表单具有必需的属性并让用户填写所有必需的信息?(不仅仅是 JavaScript,还有 modelState 验证)我想到了一个 viewModel,但我得到了一堆“无法将类型 'project.model.companyinformation' 转换为 project.model.companyinformationviewmodel'”的错误。

我对 C#、asp.net MVC 很陌生。我过去只是采取简单的方法并使用 vb.net 和 asp.net 网络表单。

任何帮助将不胜感激。

4

1 回答 1

1

创建模型是正确的方法。您不能从实体转换为模型。您需要自己传输数据。

var entity = GetEntity();
var model = new MyModelType();
model.ID = entity.ID;
model.OtherField = entity.OtherField;

有一个名为AutoMapper的有用项目可以为您自动执行此操作。

另一种方法是创建自定义验证属性RequiredIf。这将验证指定的布尔字段是否具有 true 值:

public class MyModelType
{
    [NotMapped]
    private bool _enableFullValidation;

    [RequiredIf("_enableFullValidation")]
    public string MyNoneRequiredDBField { get; set; }
}
于 2013-01-15T20:22:39.953 回答