我目前正在使用 mvc 3 和 c# 设计一个 Web 应用程序。我必须做以下场景,并试图确定平台的正确实现。在这里,我必须根据下拉列表的选择来显示/隐藏几个表单元素(文本框),这也应该是表单的一部分。在 mvc 3 平台下实现这一点的最佳方法是什么。我遇到的一个主要问题是,所有应该出现的元素也应该是必需的,而其他元素不应该是必需的。我更喜欢使用 DataAnnotation 验证。我是否应该首先渲染所有表单元素并使用 javascript 根据下拉选择来确定要显示/隐藏哪些元素?这里的问题似乎是如何在保持验证逻辑的同时改变所需的逻辑,以确保如果在任何字段中输入任何内容,它就会被验证?另一方面,为每个需要的表单创建一个局部视图并根据下拉选择显示/隐藏局部视图似乎有点矫枉过正,更不用说由于圆形滴漏而效率低下。
问问题
2382 次
2 回答
1
也许你可以在前端使用 jQuery 做到这一点。例如
<select name="source" id="source">
<option value="null" selected="selected">—Select—</option>
<option value="o1">Option 1</option>
<option value="o2">Option 2</option>
<option value="o3">Option 3</option>
</select>
<div id="content"> some content to show/hide </div>
以及相应的jquery:
$('#source').change(function() {
($(this).val() == "o3") ? $('#content').show() : $('#content').hide();
});
所以基本上当有些人选择选项 3 时,会显示 div 内容。我不确定您为什么需要使用 ajax,但是一旦提交数据,您就可以在服务器端验证值。
使用 Mvc.ValidationToolkit 查看条件验证也可能有益:
于 2012-11-26T04:20:11.817 回答
0
看到这个:
基于 MVC 和 Jquery 中的下拉选择隐藏或显示特定表单
或者你也可以看到
http://atikpassion.blogspot.com/2014/01/mvc-razor-show-hide-any-id-based-on.html
于 2014-01-09T06:34:26.553 回答