0

我目前正在使用 mvc 3 和 c# 设计一个 Web 应用程序。我必须做以下场景,并试图确定平台的正确实现。在这里,我必须根据下拉列表的选择来显示/隐藏几个表单元素(文本框),这也应该是表单的一部分。在 mvc 3 平台下实现这一点的最佳方法是什么。我遇到的一个主要问题是,所有应该出现的元素也应该是必需的,而其他元素不应该是必需的。我更喜欢使用 DataAnnotation 验证。我是否应该首先渲染所有表单元素并使用 javascript 根据下拉选择来确定要显示/隐藏哪些元素?这里的问题似乎是如何在保持验证逻辑的同时改变所需的逻辑,以确保如果在任何字段中输入任何内容,它就会被验证?另一方面,为每个需要的表单创建一个局部视图并根据下拉选择显示/隐藏局部视图似乎有点矫枉过正,更不用说由于圆形滴漏而效率低下。

4

2 回答 2

1

也许你可以在前端使用 jQuery 做到这一点。例如

<select name="source" id="source">
  <option value="null" selected="selected">&mdash;Select&mdash;</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 回答