【问题标题】:ASP .NET MVC: Html.Radiobutton onclick -- set ViewData[""]ASP .NET MVC:Html.Radiobutton onclick -- 设置 ViewData[""]
【发布时间】:2009-06-11 13:41:27
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: asp.net-mvc radio-button


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      【解决方案2】:

      ViewData 仅在请求的生命周期内存在,并且仅存在于服务器端。所以,一旦页面被渲染,对象就不再存在了。

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

      1 - 根据需要使用客户端 Javascript 添加表单和输入。更多信息在这里: ASP.NET MVC & JQuery Dynamic Form Content

      2 - 预渲染新表单,但通过 CSS 将其隐藏,并在单击相应的单选按钮时取消隐藏。更多信息在这里: expand collapse html field Firefox

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 1970-01-01
        • 2017-08-05
        相关资源
        最近更新 更多