gpt4 book ai didi

asp.net-mvc - 在 ASP.Net MVC 中仅编辑部分模型

转载 作者:行者123 更新时间:2023-12-04 05:47:39 24 4
gpt4 key购买 nike

我对 MVC 很陌生,偶然发现了一个问题。我用谷歌搜索了很多,但找不到解决方案。

我正在使用带有角色的 ASP.Net Membership。

假设我有一个具有属性的产品模型:

  • 姓名
  • 货号
  • 分类

  • 我怎样才能实现这一点,所以只允许不同的角色 cab 编辑对象的一部分?
    (例如,假设一个角色不能更改产品的类别。)

    同一个模型可以有不同的 View ,或者同一个对象可以有不同的模型吗?

    如果我遗漏了一些属性,当我保存它们时它们将具有 NULL 值。
    我尝试使用 @HTML.HiddenFor(...)但随后对这些字段的验证失败。

    最佳答案

    ViewModel 听起来可以解决问题。对于除了最琐碎的场景之外的所有场景,当您将模型和 View 紧密耦合时,您都会遇到问题。

    如果您以前没有使用过它们,ViewModel 只是您正在渲染的特定 View 的一个类(模型)。您可以在 ViewModel 上自定义所需的属性和验证,然后将其绑定(bind)到 Model,因此该结构更加灵活且易于使用。

    ViewModels 有详细介绍 http://kazimanzurrashid.com/posts/asp-dot-net-mvc-viewmodel-usage-and-pick-your-best-pattern

    编辑

    然后,您可以为每个角色拥有一个 ViewModel,但如果您只是希望保护某个属性不被某些角色更新,则应该有其他解决方案,例如将 html 输入设置为禁用,然后在服务器上测试该类别value 仍处于其原始状态(请注意,您应该始终执行这样的测试,因为 Post 请求可以更改)。

    关于asp.net-mvc - 在 ASP.Net MVC 中仅编辑部分模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479542/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com