Enum RadioButtonFor 编辑器模板设置值

2024-03-19

基于this https://stackoverflow.com/questions/18542060/mvc4-enum-and-radio-button-list问题,我实现了一个 RadioButtonFor 编辑器模板。我工作得很好,但目前你无法传递你想要选择的值。

EnumRadioButtonList.cshtml (Editor Template):
@model Enum

    @foreach (var value in Enum.GetValues(Model.GetType()))
    {
        if ((int)value > 0)
        { 
            @Html.RadioButtonFor(m => m, (int)value)  
            @Html.Label(value.ToString())
        }
    }

我从 View 中调用它:

@Html.EditorFor(m => m.QuestionResponse, "EnumRadioButtonList")

如何传递值 QuestionResponse (枚举)以便选择单选按钮?


您可以创建一个自定义 html 帮助器,它将提供 2 路绑定

namespace YourAssembly.Html
{
  public static class EnumHelpers
  {
    public static MvcHtmlString EnumRadioButtonListFor<TModel, TValue>(this HtmlHelper<TModel> helper, Expression<Func<TModel, TValue>> expression)
    {
      ModelMetadata metaData = ModelMetadata.FromLambdaExpression(expression, helper.ViewData);
      string name = ExpressionHelper.GetExpressionText(expression);
      if (!metaData.ModelType.IsEnum)
      {
        throw new ArgumentException(string.Format("The property {0} is not an enum", name));
      }
      string[] names = Enum.GetNames(metaData.ModelType);
      StringBuilder html = new StringBuilder();
      foreach(string value in names)
      {
        string id = string.Format("{0}_{1}", name, value);
        html.Append("<div>");
        html.Append(helper.RadioButtonFor(expression, value, new { id = id }));
        html.Append(helper.Label(id, value));
        html.Append("</div>");
      }
      return MvcHtmlString.Create(html.ToString());
    }
  }
}

添加对的引用<namespaces>web.config 部分

<add namespace="YourAssembly.Html "/>

并将其用作

@Html.EnumRadioButtonListFor(m => m.QuestionResponse)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Enum RadioButtonFor 编辑器模板设置值 的相关文章

随机推荐

  • 为什么“element.innerHTML=”是错误的代码?

    我被告知不要使用附加内容element innerHTML 像这样 var str div hello world div var elm document getElementById targetID elm innerHTML str
  • kafka AdminClient API等待节点分配超时

    我是卡夫卡的新手 正在尝试使用AdminClient用于管理在我的本地计算机上运行的 Kafka 服务器的 API 我的设置与中完全相同快速开始 http kafka apache org quickstartKafka 文档的部分 唯一的
  • 使用 NSArrayController 分段 NSTableView

    我正在尝试创建一个分段NSTableView using NSArrayController和可可绑定 我正在寻找类似的方法 例如NSFetchedResultsController在 iOS 中 您可以在其中设置部分键路径 我想做一些类似
  • 在 cakephp 中使用本地化

    如何本地化 cakePhp 中的字符串 我在在线文档方面没有取得任何成功 谢谢你的帮助 有几个步骤 首先 设置要使用的区域设置 创建一个或多个 po该语言的文件 将所有支持 l10n 的字符串包裹起来 or d 辅助方法 以下是我的一个项目
  • 自适应卡:如何创建 6 列的表格而不截断文本?

    我创建了一张自适应卡来显示为表格 但是 文本被截断了 就像Today I 代替Today In Count完整的文本 此自适应卡适用于 Microsoft Teams 自适应卡 schema http adaptivecards io sc
  • blockUI 与 ajax 的异步选项为 false

    我需要调用一个 javascript 函数来返回 ajax 调用的内容 为了达到这个结果 我在 ajax 调用中将 async 选项设置为 false function ajaxQuery var content ajax url blab
  • 使用 DbConnection 执行存储过程

    我需要在数据库上执行存储过程 这是我到目前为止所得到的有效方法 protected DbProviderFactory dbProviderFactory this dbProviderFactory DalFactory GetFacto
  • Common Lisp 重新启动到条件绑定

    我在空闲时间学习 Common Lisp 并对条件系统有疑问 当我们在 common lisp 中处理错误时 我们在处理程序中指定错误类型来确定要处理哪个错误 在引发和处理错误之间 我可以进行一些重新启动 例如使用 restart case
  • bash 内置命令“select”无法通过 shell 脚本中的管道工作

    我使用bash内置命令编写了一个shell脚本select创建选择菜单 调用时效果很好bash直接地 但如果我使用管道 例如cat script sh bash the select功能将无法工作 例如 代码片段显示 usr bin env
  • 如何实现OnFragmentInteractionListener

    我在 android studio 0 8 2 中有一个带有导航抽屉的向导生成的应用程序 我创建了一个片段并使用 newInstance 添加它 但出现此错误 com domain myapp E AndroidRuntime 致命异常 m
  • Python:日志处理程序仅记录级别小于错误的日志

    我需要一种方法让 python 记录器不记录 ERROR 或以上错误 只需要它记录少于 ERROR 的信息 import logging from logging import StreamHandler def get log forma
  • 实施简单的文档管理

    我的问题是 根据以下要求 您将如何继续实施简单的DMS 文档管理 DMS应该是分布式Web应用程序 支持文档版本控制 支持文档锁定 文档搜索 我已经清楚我想使用什么技术 我将使用 Spring MVC Hibernate 和关系数据库 最有
  • 元素数组中的 jQuery min/max 属性

    有没有一种简单的方法可以从 jQuery 元素数组中查找 min max 属性 我经常发现自己根据最小和最大对应项动态调整元素组的大小 大多数时候 这与元素的宽度和 或高度有关 但我确信这可以应用于元素的任何属性 我通常会做这样的事情 va
  • 使用 EncodePointer/DecodePointer 的好处

    使用有什么好处编码指针 解码指针在 Windows 中 MSDN say 对全局可用的指针进行编码有助于保护它们不被利用 这编码指针函数用秘密来混淆指针值 以便外部代理无法预测它 使用的秘密编码指针每个进程都不同 现在的问题是 如果攻击者位
  • C++ 中的动态树

    我想制作一棵树 每个节点都可以有一些子节点 但我不知道它们的数量 树必须在小内存中使用 无额外数据 以每个节点的恒定时间进行编码 我认为我将创建具有值和子属性 值是 int 子属性是堆栈 的类 Tree 以及指向该树中每个节点的指针数组 我
  • Retrofit2:预期为 BEGIN_ARRAY,但在第 1 行第 268 列路径 $[0].images 处为 STRING

    我知道这不是第一次有人问这个问题 但使用 Retrofit2 我找不到正确的解决方案来解决我的问题 我有一个包含字符串列表的对象 当我想将 JSON 响应转换为我的对象时 所有其他字段都可以 但在将字符串列表转换为我的列表时出现此错误 Re
  • 在 React 中使用共享 Worker

    我有一个后端应用程序 它不断地通过 Web 套接字向我的 React 应用程序提供事件 当收到特定事件时 应打开一个新的浏览器选项卡 该应用程序将由用户在多个选项卡中运行 因此我只需打开一个新选项卡一次 并防止所有正在运行的实例打开它 我尝
  • 如何使用 PHP 在 OS X 10.5.8 中启用 Sqlite3?

    我想在我的 MAMP 堆栈上安装 Symfony 框架 然而 当我尝试运行它时 Symfony 抱怨我需要 安装并启用 SQLite3 或 PDO SQLite 扩展 我不知道该怎么做 我安装了sqlite3 sqlite3 version
  • 通过网络复制文件(需要身份验证)

    是否有某种方法可以验证本地 非网络 用户身份 以便通过网络在 Net 中复制文件 net use不是一个选择 我似乎无法得到登录用户 http blogs msdn com shawnfa archive 2005 03 21 400088
  • Enum RadioButtonFor 编辑器模板设置值

    基于this https stackoverflow com questions 18542060 mvc4 enum and radio button list问题 我实现了一个 RadioButtonFor 编辑器模板 我工作得很好 但