2012-07-16 80 views
0

我使用的是MVC3,我的视图中有剃刀和原始html的混合,MVC3和验证Razor和jQuery插件的混合

<div class="editor-field"> 
    @Html.EditorFor(model => model.PAGE) 
    @Html.ValidationMessageFor(model => model.PAGE) 
</div> 


<div class="editor-label"> 
    @Html.LabelFor(model => model.PERIODICAL) 
</div> 
    div class="editor-field"> 
    <div class="editor-field"> 
      <input type="text" id="periodicallist" name="tiperiodical" /> 
    </div> 
</div> 

我的JavaScript应用tokenInput控制插件文本框和所有的罚款,但我不知道如何可以验证这一点(即空的文本框/ tokenInput),它需要注入至少1个令牌。目前,令人困惑的是,有两种形式创建视图,让Razor直接从模型构建元素,然后通过使用jQuery插件添加更多复杂性/ cusomization等。

任何人都可以建议如何验证jQuery插件张贴回控制器?

干杯

回答

1

如果使用不引人注目的验证,那么你所有要做的就是添加必要的HTML5数据属性从JavaScript输入元素和微软的不显眼的JavaScript库将完成剩余的工作。

例如,如果您已通过JavaScript动态地将文本框注入到表单中,并且您需要执行所需的验证,那么您必须添加如下所示的data-valdata-val-required属性。

<input data-val="true" 
     data-val-required="No. of joinees is required" 
     name="NoOfJoinees" 
     type="text" /> 

编辑:

要显示你必须注入span靠近现场验证错误消息,

<span class="field-validation-valid" 
     data-valmsg-for="NoOfJoinees" 
     data-valmsg-replace="true"> 
</span> 
+0

嘿的答复马克,刚才你说的做的感谢 - 但它有一半的工作 - 在表单将停止发布,但你没有得到任何好的错误消息,像其他MVC框架“开箱即用”的错误消息。我可能会在这里错过什么? – Vidar 2012-07-16 13:21:15

+0

@Vidar我更新了我的答案,请尝试 – VJAI 2012-07-16 13:28:10

+0

太棒了!现在很明显。非常感谢您的帮助。 :) – Vidar 2012-07-16 13:31:01