2011-05-05 155 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) 

該字段的名稱相匹配的屬性的名稱是非常重要的。其他方面什麼都不會發生。