MVC表单向远程验证器发送值

时间:2015-08-11 15:31:17

标签: c# asp.net-mvc asp.net-mvc-3

我正在尝试使用远程验证程序对我的数据库存在用户电子邮件,我的问题是它是以一个名称发布我的电子邮件,我不知道如何将tail -f /var/log/eb-activity.log作为参数。< / p>

这是我的属性:

Action

这是我的行动:

[Remote( "EmailExists", "Register", HttpMethod = "POST", ErrorMessage = "Email already exists!" )]
public string Email { get; set; }

这就是电子邮件发布到操作的方式,我在帖子的标题上获得了这些信息(表单数据):

[HttpPost]
public JsonResult EmailExists( string email )
{
    using (var db = new SOSEntities())
    {
        var user = db.VT_Usuario.FirstOrDefault( us => us.email.Equals( email ) );

        return Json( user == null );
    }
}

我的用户类位于user.Email: ariel%40teste.com 内,其中包含我在项目中使用的其他一些模型,用户数据位于ViewModel内的user对象内,并由此生成数据已发布为ViewModel

我可以做些什么来解决这个问题?

2 个答案:

答案 0 :(得分:1)

我认为您应该使用具有视图所需属性的展平视图模型。只有那些属性,没有别的。在Action方法中,您可以读取已发布的viewmodel的属性值,并根据需要将其映射到其他实体(根据需要在Mapping层或Business层中)。

所以你的viewmodel就像

Windows Server 2003

答案 1 :(得分:0)

您可以对方法进行AJAX调用并使用结果。

 $.ajax({

            url: 'http://MySite/myController/EmailExists',
            data: '{email:"dog@bark.com"}',
            dataType: 'json',
            contentType: "application/json;charset=utf-8",
            type: 'POST',
            success: function (result) { document.write(JSON.stringify(result)) }
})