2011-05-05 175 views
0

我正在试图在ASP MVC3中进行远程验证。我花了几个小时阅读和尝试,但我没有达到它。远程验证无法正常工作

首先......我在Web.config文件中添加了此行的appSettings

<add key="ClientValidationEnabled" value="true"/> 
<add key="UnobtrusiveJavaScriptEnabled" value="true"/> 

然后,我就与dataanotations类。

Public Class PackageCreationInfo 

    'Lot of Properties here... 
    <DisplayName("Id Modalidad")> 
    <Remote("ModeExists", "PreactivatedLicenses", AdditionalFields:="IdVersion")> 
    Public Property IdMode As Integer 
    <Required(ErrorMessage:="La Versión es obligatoria")> 
    <DisplayName("Id Versión")> 
    Public Property IdVersion As Integer 

End Class 

在我看来,我添加了这个脚本

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

而且我在_layout已经这样的人

<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/jquery.datepick-es.js")" type="text/javascript"></script> 
    <script src="@Url.Content("~/Scripts/Plugins/Expander/expand.js")" type="text/javascript"></script> 

然后,在我的控制,我有这个功能

Public Function ModeExists(ByVal IdMode As Integer, IdVersion As Integer) As JsonResult 

      Dim ExistModeForThisVersion As Boolean = _ProductApps.ExistModeForVersion(IdMode, 13) 

      If (ExistModeForThisVersion) Then 
       Return Json(String.Format("Esta modalidad no está disponible en la versión seleccionada."), JsonRequestBehavior.AllowGet) 
      Else 
       Return Json(True, JsonRequestBehavior.AllowGet) 
      End If 

     End Function 

我的问题是,我不能得到这个功能离子叫。 事实是,生成的HTML没有data-val-remote属性或类似的东西。

不属于“远程”的其他客户端验证正在运行。 可能是什么问题?

谢谢。

回答

0

对不起......我犯了一个愚蠢的错误(另一个)

我会在这里写我的错误当作忏悔,因为有远程 posibility,它可以帮助的人。

在我看来......我写

@Html.DropDownList("IdProgramMode", New SelectList(ViewBag.ProductModesList, "Id", "Mode")) 
@Html.ValidationMessageFor(Function(model) model.IdMode) 

但应

@Html.DropDownList("IdMode", New SelectList(ViewBag.ProductModesList, "Id", "Mode")) 
@Html.ValidationMessageFor(Function(model) model.IdMode) 

该字段的名称相匹配的属性的名称是非常重要的。其他方面什么都不会发生。