使用接口作为分部视图的模型类型+数据注释

2023-11-27

我遇到的情况是,复杂的局部视图需要根据局部视图的使用位置进行不同的字段验证。

我认为我可以通过使分部视图采用接口作为模型类型并基于该接口实现两个不同的 ViewModel 来解决这个问题。两个 ViewModel 中的数据注释会不同。然后,我将向部分视图提供正确 ViewModel 的实例。

但我发现唯一能识别的注释是界面本身的注释。接口实现 ViewModel 类上的 DA 会被忽略,即使这些是作为模型传递的对象。所以我的计划行不通。

有没有解决的办法?更好的方法?如果可以避免的话,我不想将部分视图拆分为单独的视图。

ETA:这是部分视图的缩写版本,根据要求:

@model IPerson
@Html.ValidationSummary(false)
<fieldset>
    <table class="editForm">
        <tr>
            <td class="editor-label">
                @Html.LabelFor(model => model.FirstName)
            </td>
            <td class="editor-field">
                @Html.EditorFor(model => model.FirstName)
                @Html.ValidationMessageFor(model => model.FirstName)
            </td>
            <td class="editor-label">
                @Html.LabelFor(model => model.LastName)
            </td>
            <td class="editor-field">
                @Html.EditorFor(model => model.LastName)
                @Html.ValidationMessageFor(model => model.LastName)
            </td>
        </tr>
     </table>
  <fieldset>

真正的局部视图相当长,并且有很多 @if 语句来管理可选部分的渲染(或不渲染),但它没有做任何棘手的事情。


我的想法行不通:这个线程提醒我类不会从其接口继承属性。 (正如答案所指出的,如果两个接口指定具有不同属性的相同属性,并且两者都由一个类实现,会发生什么?)

它可能与公共基类一起使用。明天我会尝试一下。

谢谢大家。

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

使用接口作为分部视图的模型类型+数据注释 的相关文章

  • Android 中所有活动的单套接字 IO 连接

    我已经为 SocketIOClient 参考创建了 Singleton 类here https stackoverflow com questions 13709783 android socket io switch activities
  • 如何在应用程序目录层次结构中构建接口?

    将它们全部放在一个单独的文件夹结构中还是与实现它们的类一起放置 切勿将接口与实现它们的类放在一起 除非这些类满足以下要求 这样做将引入一个紧耦合在接口和实现者之间 如果不同时引用实现者 您将无法创建该接口的其他实现 你基本上有两个选择 将接
  • 控制器 HMVC 内的 CodeIgniter 负载控制器

    我在用着http github com philsturgeon codeigniter template http github com philsturgeon codeigniter template 对于模板 我尝试将其他控制器视图
  • MVC3中设置下拉列表中的所选项目

    我必须为视图中的下拉列表设置所选项目 但它不起作用 View div class editor label Html LabelFor model gt model Gender div div class editor field Htm
  • 更改成员资格、角色等的默认连接字符串

    默认情况下 我的网络应用程序似乎正在使用LocalSqlServer作为用于任何应用程序服务 例如成员资格 角色 身份验证 等 的连接字符串 有什么方法可以更改默认连接字符串应该是什么 默认值是 LocalSqlServer 似乎很随意 我
  • MVC3 中定义路由的文件

    我有这个文件
  • ASP.NET MVC - 更新生产中的预编译 Razor View 文件

    我想知道以下是否可能 通过在 Visual Studio 中打开项目设置 使用我们的 MVC 应用程序预编译 Razor 视图 将应用程序部署到生产环境 然后在稍后阶段 通过覆盖生产中现有的 cshtml 文件来更新视图 而无需回收应用程序
  • C# 如何在运行时动态生成实现不同接口的对象?

    我正在研究如何解决问题 但我什至不确定这在 C 和 NET 3 5 中是否可行 假设我的接口数量有限 每个接口都描述一组特定的 不相关的方法 现在我有许多现实世界的设备 每个设备都可以仅实现这些接口的一个子集 在与这些设备建立通信期间 他们
  • Html.BeginForm Post 在 IE 中转到 HttpGet 操作而不是 HttpPost,在 Chrome 和 Firefox 中很好

    我的 Razor 视图中有以下内容 using Html BeginForm Edit MyController FormMethod Post div class grid 1 nbsp div div Html ValidationSu
  • 如何使用 jQuery 在 ASP.NET MVC 3 中设置会话变量?

    所以这就是问题 如何使用 jQuery 在 ASP NET MVC 3 中设置 Session 变量 我正在尝试使用 ajax or post但问题是我真的不知道该怎么办 描述 只需发布到控制器并在那里设置会话变量即可 Sample jQu
  • MVC 3 Razor _ViewStart 中的公共变量

    我正在 MVC 3 附带的新 Razor 引擎上构建一个网站 并且喜欢新语法 但是 我对使用公共属性 常量感到不知所措 我知道使用 WebForms 我们可以在代码后面添加公共属性 public string ImageFolder get
  • ASP.NET MVC区域命名空间问题

    我在我的 asp net mvc 3 解决方案中创建一个名为的新区域admin Visual Studio 自动分配名称空间 MyApp areas admin controllers 我将其更改为MyApp admin controlle
  • ASP.NET MVC3 绑定到子类

    我有一个类型的超类Question它有多个子类 例如选择题 and 文本问题 每个子类都有自己的编辑器模板 例如 共享 EditorTemplates MultipleChoiceQuestion cshtml 我想做的是创建一个列表Que
  • JRuby:带有 Ruby 块的 Java 命令模式:为什么它有效?

    我正在学习如何将 Java 库与 Ruby 代码集成 并提出以下问题 我有一个用Java实现的命令模式 如下所示 public interface Command public String execute String param pub
  • MVC3远程模型验证操作中的参数名称

    我使用远程验证属性SSN属性 在视图页面中我使用通用视图 然后 ssn 字段如下 Html EditorFor model gt model MainModel SSN Html ValidationMessageFor model gt
  • 为什么MVC视图需要存在于View目录中才能工作?

    我一直在编写一个cms 使用MVC作为生成页面的主要引擎 我进展顺利 但希望能够为每个站点甚至每个视图创建一个独特的剃刀模板 如果需要的话 我的规则是每个项目都必须有一个与 URL 链接的唯一代码 每个项目站点的资产都按照位置与项目相关的方
  • 强制派生类实现接口

    我今天在这里 就像昨天一样 遇到了另一个奇怪的界面问题 我有一堂课 public class InputDevice
  • 默认 ASP.NET MVC 3 模型绑定器不绑定小数属性

    由于某种原因 当我将此 JSON 发送到操作时 BaseLoanAmount 5000 它应该绑定到一个具有名为 BaseLoanAmount 的十进制属性的模型 它不会绑定 它只是保持 0 但是如果我发送 BaseLoanAmount 5
  • 用于动态视图数据/表单的 ASP.Net MVC 编辑器模板

    我正在实现一个 MVC3 Razor Web 应用程序 该应用程序检索用户可以从其他服务编辑的一些 字段 因此要在视图中编辑的属性列表是完全动态的并且在编译时未知 我编写了一些部分视图和 HTML 帮助程序 它们循环从其他服务检索到的组和属
  • HTML 帮助器类方法不起作用

    我被 Steven Sanderson Adum Freeman Pro ASP Net MVC 3 的参考书困住了 我已经读到了第 185 页 其中使用 HTML 帮助程序返回链接中的页面编号 我在这个网站上找到了帮助解决我与这本参考书有

随机推荐

  • 智能应用横幅;适用于 Android/Google Play 的 Windows 应用商店应用 HTML 元标记等效吗?

    智能应用横幅是 iOS 6 中最近为 iOS 设备添加的功能 它涉及简单添加一个元标记 当使用 Mobile Safari 访问时 该元标记会检查手机上是否存在应用程序 并显示访问者是否想要启动或安装该应用程序的选项 Windows 应用商
  • 在 TextInput 外部点击时模糊 TextInput

    我在使用时遇到问题TextInput预期的行为是 当我点击它时 它会聚焦并显示键盘 而当我点击它周围 输入之外的任何地方 时 TextInput 应该模糊并且键盘将消失 目前这种情况还没有发生 无论我点击哪里 文本输入都会保持焦点 这是预期
  • 为什么 UIWebView 不应该放在 UIScrollView 中?

    问题 有谁知道在 iOS 上避免滚动视图内的 Web 视图的技术原因 假设您愿意禁用网络视图本身的滚动 如果你看在 Apple 文档中的 UIWebView 他们指出 重要的 您不应将 UIWebView 或 UITableView 对象嵌
  • 具有 AES 和 rsaEncryption 的 EnvelopedCMS(PKCS#1 v1.5 填充而不是 v2 (OAEP) 填充)可能吗?

    我曾经使用过 NET 来实现加密目的 到目前为止 我将 3DES Oid 1 2 840 113549 3 7 与 rsaEncryption Oid 1 2 840 113549 1 1 1 RSAES PKCS1 v1 5 结合使用 虽
  • 使用 PHP 在 JSON 中创建空对象的最佳方法?

    要创建一个空的 JSON 对象 我通常使用 json encode object null 将 null 强制转换为对象是可行的 但是还有其他更好的方法和 或此解决方案有任何问题吗 推荐方法 json decode 将返回一个stdClas
  • 在 Python 中设置乘积

    A product of n copies of a set S is denoted Sn For example 0 1 3 is the set of all 3 bit sequences 0 1 3 0 0 0 0 0 1 0 1
  • Python:如何在请求中使用 Chrome cookie

    我正在寻找一种从 Chrome 浏览器 默认 获取 cookie 的方法 并通过请求使用它 我当然已经四处搜寻 并发现了例如这个 如何使用Python从网络浏览器获取cookie 但这不再起作用了 因为 Chrome 不断更新 他们在答案中
  • 为什么action第二次运行时没有触发Effect?

    Effect Effect loadDocsEffect this actions pipe ofType myActionTypes LoadDocs mergeMap action gt this myService getDocs m
  • VB.NET 到 C# - my.computer.getfiles()

    此 VB NET 代码的等效 C 代码是什么 My Computer FileSystem GetFiles My 类是 VB NET 特定的 您可以使用 System IO Directory 类的静态方法 例如目录 GetFiles
  • 限制弹性盒项目的高度[重复]

    这个问题在这里已经有答案了 我有一个包含 2 个项目的弹性盒 方向 行 第二项的文字内容很长 我希望第二个项目与第一个项目一样高 并且有一个滚动条 这可能吗 wrap display flex item 1 height 100px bac
  • 在 Ruby 块中使用“return”

    我正在尝试使用 Ruby 1 9 1 作为嵌入式脚本语言 以便在 Ruby 块中编写 最终用户 代码 这样做的一个问题是 我希望用户能够在块中使用 return 关键字 这样他们就不必担心隐式返回值 考虑到这一点 我希望能够做这样的事情 d
  • 正在寻找 Delphi 7 代码来检测程序是否以管理员权限启动?

    我在寻找working 明显地 德尔福7代码所以我可以检查是否我的程序是以管理员权限启动的 提前致谢 重要更新 到目前为止 查看了答案中的代码后 我意识到我的问题可能不太清楚 或者至少不完整 我想知道我的 Delphi 7 程序是否以 以管
  • Symfony/Doctrine - createQueryBuilder orderBy

    我有一个具有财产 预算 的 团队 实体 我只想打印团队属性 并且希望预算最大的团队出现在第一位置 第二位置 第三位置 DESC 但使用这段代码 它不起作用 我不明白为什么 索引动作 控制器 em this gt getDoctrine gt
  • 如何从 cv::Mat 转换为 CvArr?

    我花了很多时间搜索如何从 cv Mat 或 CvMat 转换为 CvArr 但没有任何收获 请帮助我 谢谢 Mat img imread C MyPic jpg CV LOAD IMAGE GRAYSCALE IplImage tmp im
  • 如何在opengl中绘制y轴或x轴的圆柱体

    我只想用opengl画一个圆柱体 我找到了很多样本 但它们都在 z 轴上绘制了圆柱体 我希望它们位于 x 或 y 轴上 我怎样才能做到这一点 下面的代码是在 z 方向绘制圆柱体的代码 我不想要它 GLUquadricObj quadrati
  • 检查 url 是否被缓存 webview android

    我使用 webview 加载 html 页面和 url 我只想在互联网可用或 url 内容由 Web 视图缓存时加载 url 如何检查 url 是否已缓存而不必创建自己的 缓存在某些外部路径上 WebSettings ws wv getSe
  • UART ISR Tx Rx 架构

    我让事情变得复杂了吗 我正在构建我的代码 以便通过 UART 从 8051 micro 与外围设备进行通信 外设响应主机的命令 一次只能响应一个命令 这是一个简单的发送和接收协议 tx1 rx1 tx2 rx2 tx3 rx3 每个 TX
  • xcode - “尝试使用已删除的函数” - 这是什么意思?

    我正在 Xcode 4 2 中编写 C 库 我的一个类将无法编译并出现此错误 尝试使用已删除的函数 没有具体说明它正在谈论什么功能 我不想在这里发布类代码 但是有人知道这个错误意味着什么吗 我对线程 C 11 也有类似的消息 事实证明 我向
  • SQL 中的动态 Like 语句

    我已经绞尽脑汁思考如何做到这一点有一段时间了 我知道这个网站上的一些天才会找到答案 基本上我正在尝试这样做 SELECT column FROM table WHERE table column LIKE string1 OR table
  • 使用接口作为分部视图的模型类型+数据注释

    我遇到的情况是 复杂的局部视图需要根据局部视图的使用位置进行不同的字段验证 我认为我可以通过使分部视图采用接口作为模型类型并基于该接口实现两个不同的 ViewModel 来解决这个问题 两个 ViewModel 中的数据注释会不同 然后 我