【问题标题】:Getting a value from an MVC 3 Razor RadioButton list从 MVC 3 Razor RadioButton 列表中获取值
【发布时间】:2011-11-19 15:54:46
【问题描述】:

我来自 WebForms 环境。当我想要一个单选按钮的值时,表单只是被 ajax 重新发布,或者我通过 javascript 得到它。

我在网上搜索过,但似乎找不到 MVC 3 Razor 的等效项。

我没有发布表单,所以我不能在 ActionResult 中使用 FormCollection 对象。

我只是想在用户选中其中一个时获取选中 RadioButton 中哪个选项的值。

我假设一旦用户检查其中一个值,我会通过 Controller 中的 Action 方法来执行此操作。

另请注意,此单选按钮列表位于部分视图中,并且可用于整个网站(因为它位于我的 _Layout.cshtml 视图中)。

有人可以帮我完成我认为应该是简单的任务吗?

【问题讨论】:

    标签: asp.net-mvc-3 radio-button


    【解决方案1】:

    您需要使用 javascript。见this post。 MVC 没有 Webforms 中的 Auto-Postback 概念。这是页面加载时间的优化(没有自我管理的视图状态)。这意味着您需要自己管理控件的状态。

    【讨论】:

    • 这听起来很蹩脚,但我检查了这些答案,似乎没有给我一个简单的答案。如果我能得到一个简单的代码示例就足够了。
    • 知道单选按钮值的目的是什么?是更改页面上的内容,重定向等吗?意图决定了你应该走哪条路。
    • 设置语言文化。我希望能够根据所选语言在控制器中运行 Action 方法,以在用户更改文化时设置文化。
    • 如果我需要使用 jQuery,我可以使用下面的语法。 $('input[name=radioName]:checked', '#myForm').val() 但是,我没有使用 FORM。另外,我可以使用什么样的变量来从 jQuery 语句中获取值。获得该值后,我需要能够设置语言文化。这需要在用户更改语言时发生。
    • @sagesky36 - 您需要使用新标签发布新问题。你原来的问题现在偏离了主题。请接受上述答案并重新提交您的新问题,以获得有关您后续步骤的指导。
    【解决方案2】:

    简而言之,如果您没有发布(或“获取”)表单,那么控制器中的值将不可用……更具体地说,控制器及其操作都不会被调用。

    如果您尝试做一些与 UI 严格相关的事情,那么您可能需要考虑 jQuery

    如果您尝试在视图内进行某种模型验证,您可能需要重新考虑 MVC 模式的方法和用法。

    【讨论】:

    • 设置语言文化。我希望能够根据所选语言在控制器中运行 Action 方法,以在用户更改文化时设置文化。
    • 请注意,这是在没有命名 FORM 的情况下完成的。它只是在带有文本的视图上或带有模型的视图上。
    • 如果我需要使用 jQuery,我可以使用下面的语法。 $('input[name=radioName]:checked', '#myForm').val() 但是,我没有使用 FORM。另外,我可以使用什么样的变量来从 jQuery 语句中获取值。获得该值后,我需要能够设置语言文化。这需要在用户更改语言时发生。
    • 我想我可以看到你的目标。如果是我,对于 MVC 应用程序,我会使用 FORM。可能使用 JavaScript 为 RadioButton(s) 提交 onClick,但仅此而已。你已经告诉我们你想在这个值改变时运行一个动作,所以提交一个表单是非常有意义的。而不是 RadioButtons,我可能会使用一个下拉框,基于(未来)选项的潜在数量以及它们在 _Layout 页面上总是占用房地产的事实......将它们放在下拉列表中会有所帮助节省空间。
    猜你喜欢
    • 2018-09-19
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    相关资源
    最近更新 更多