2011-11-29 56 views
0

我目前有一個MVC3網站,我在其中顯示具有特定格式的日期時間字段,即大寫字母(DD-MON-YYYY)。我在哪裏可以找到在HTML Helper或EditorTemplate中使用的RemoteValidation詳細信息?

我爲此創建了以下DateTime.ascx EditorTemplate,並且我添加了一個自定義數據日期選擇器屬性,該屬性被一些自定義JavaScript拾取以向該字段添加Jquery UI Datepicker。 <%@控制語言= 「C#」 繼承= 「System.Web.Mvc.ViewUserControl」 %>

<input id="<%= ViewData.ModelMetadata.PropertyName %>" 
     name="<%= ViewData.ModelMetadata.PropertyName %>" 
     type="text" 
     value="<%= ViewData.TemplateInfo.FormattedModelValue.ToString().ToUpper() %>" 
     data-datepicker="true" /> 

我的問題是,當我使用EditorTemplate,我失去所有的RemoteValidation屬性在輸入框中。顯然,因爲我沒有專門添加它們!

有人能指出我在哪裏可以在模型或模型元數據中找到所需信息的正確方向,以便我可以使用遠程驗證和JQueryUI日期選擇器構建輸入框?

這是我從EditorTemplate目前得到:

<input id="MyDate" 
     name="MyDate" 
     type="text" 
     value="19-SEP-2011" 
     data-datepicker="true" /> 

這就是我想要的到底是:

<input class="text-box single-line" 
     data-val="true" 
     data-val-remote="&amp;#39;Date (DD-MON-YYYY)&amp;#39; is invalid." 
     data-val-remote-additionalfields="*.MyDate" 
     data-val-remote-url"=/Validation/IsDateValid" 
     data-val-required="A Date must be given" 
     id="MyDate" 
     name="MyDate" 
     type="text" 
     value="19-Sep-2011" 
     data-datepicker="true" /> 

幾件事情需要注意:

  • 如果需要,我打算使用HTMLHelper。我不限於編輯器模板
  • 我在用於不同日期的控制器上有不同的RemoteValidation操作。所以我不能只對驗證網址進行硬編碼。我需要查看模型中字段上裝飾的RemoteAttribute的值。
  • 同樣,data-val-remote值也需要基於模型字段上的RemoteAttribute加載。

有沒有人有任何想法?

回答

1

你需要使用一個輔助,以獲得HTML5由不顯眼的驗證腳本使用數據 - *屬性:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> 
<%= Html.TextBox(
    "", 
    ViewData.TemplateInfo.FormattedModelValue.ToString().ToUpper(), 
    new { data_datepicker = "true" } 
) %> 
+0

感謝您的。我沒想過在模板中使用助手。乾杯! – Nick

相關問題