2015-06-12 62 views
0

我想在我的应用程序中使用远程验证来检查已存在的记录。mvc远程验证不起作用

这里:

[Required(ErrorMessage = "*")] 
public Nullable<long> fk_Store_ID { get; set; } 

    [System.Web.Mvc.Remote("doesGround", "User", HttpMethod = "POST", ErrorMessage = "Ground Level is already exists for this store.", AdditionalFields = "fk_Store_ID")] 
[DefaultValue(false)] 
    public bool MembershipGroundLevel { get; set; } 

和我的控制器操作:

[HttpPost] 
public JsonResult doesGround(bool MembershipGroundLevel, long? fk_Store_ID) 
{ 
    Int64 store_id = Convert.ToInt64(fk_Store_ID); 
    var count = db.tbl_Membership 
    .Where(o => o.fk_Store_ID == store_id && o.MembershipGroundLevel == true && o.isVisible == true).Count(); 
    return count >= 1 ? Json(false, JsonRequestBehavior.AllowGet) : Json(true, JsonRequestBehavior.AllowGet); 
} 

在这里我得到了两个NULL值。如果我将数据类型分别更改为bool和long。我得到的内部服务器的500错误

回答

0

我觉得你的行动doesGround定义是错误,请尝试以下一个

public JsonResult doesGround(bool MembershipGroundLevel, long? fk_Store_ID) 

这也是很好问,如果您的验证UserController控制器在Area,它是的,你需要在RemoteAttribute中指定区域名称,由RoutData属性确定。

+0

你能告诉我们为'fk_Store_ID'和'MembershipGroundLevel'输入生成的html吗? – tutok