1

我是 ASP .NET MVC 和一般 Web 编程的新手。

我想知道是否有办法在选择单选按钮时设置 ViewData 变量 - 但在提交页面之前。

也许我叫错了树,但我想做的是创建一个表单,根据选择的单选按钮添加新字段。所以我想要做的是,当单击单选按钮时,它会设置一个 ViewData 变量,并基于该 ViewData 变量,不同的局部视图会在当前字段下方加载适当的字段。

我想一定有办法做一个 onclick="some C# function that sets ViewData(args)"

谢谢

4

2 回答 2

2

ViewData 仅在请求的生命周期内存在,并且仅存在于服务器端。因此,一旦呈现页面,该对象就不再存在。

您可以采取的一些替代方法:

1 - 根据需要使用客户端 Javascript 添加表单和输入。更多信息: ASP.NET MVC & JQuery 动态表单内容

2 - 预渲染新表单,但通过 CSS 将其隐藏,并在单击相应的单选按钮时取消隐藏。更多信息: 展开折叠 html 字段 Firefox

3 - 单击相应的单选按钮时,使用 AJAX 呈现新表单。更多信息在这里: http ://www.asp.net/learn/mvc/tutorial-32-cs.aspx

于 2009-06-11T13:45:52.113 回答
2

有几种方法可以解决这个问题。

1)您可以有一个 Ajax 表单,通过 Javascript 将表单发回并检查它是否是 Ajax 请求,然后将部分视图返回到您指定的 div。

2)按原样发布表单并检查服务器端以查看是否单击了单选按钮,从而重新显示具有可见新选项的表单。

如果您采用第一种方法,那么对于那些没有启用 Javascript 的人来说,很容易进入第二种方法。

没有真正的“onclick”事件,因为我假设您已经习惯了 Webforms,您基本上必须滚动自己的 Javascript 来处理这些事情。一旦你做了一些,我想你会发现它真的不是太糟糕,这样做的好处是你可以更好地控制你正在做的事情,并通过它更好地了解更大的画面。

于 2009-06-11T13:50:18.080 回答