如何持久化传递给局部视图的数据模型?

2024-05-12

为了说明我面临的问题,我整理了三个简单的数据模型:

 public class PersonalModel {
     public string FirstName { get; set; }
     public string LastName { get; set; }
 }

 public class AddressModel {
     public string Street { get; set; }
 }

 public class OverallModel {
    public string Id { get; set; }
    public PersonalModel Personal { get; set; }
    public AddressModel Address { get; set; }
 }

这是我的简单 Index.html:

@model WebAppTest.Models.OverallModel
@using (Html.BeginForm())
{
  @Html.AntiForgeryToken()

  <div class="form-horizontal">
    <h4>OverallModel</h4>
    <hr />
    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    @Html.HiddenFor(model => model.Id)

    <div>
        @Html.Partial("Personal", Model.Personal)
    </div>
    <div>
        @Html.Partial("Address", Model.Address)
    </div>

    <div class="form-group">
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Save" class="btn btn-default" />
        </div>
    </div>
  </div>
}

单击“保存”按钮时,将调用以下控制器方法:

[HttpPost]
public ActionResult Index(OverallModel model) {
    return View(model);
}

我的问题是model.Personal and model.Address值在控制器方法中始终显示为 null。

尽管值已正确传递到部分视图,但单击“提交”时,Razor 引擎无法将整个对象重新组合在一起。

如果您能告诉我我缺少什么,我将不胜感激。问候。


通过OverallModel到您的部分,以便控件将被正确命名以便回发到OverallModel。目前您可以使用以下控件进行控制name="FirstName"但他们需要name="Personal.FirstName"

@Html.Partial("Personal", Model)

并更改部分以适应

@model OverallModel
....
@Html.TextBoxFor(m => m.Personal.FirstName)

作为替代方案,您还可以将前缀传递给部分

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

如何持久化传递给局部视图的数据模型? 的相关文章

  • ASP.NET MVC 中是否有嵌套母版页?

    我想知道 MVC 框架是否可以利用嵌套母版页 如果是这样 有人有一些关于如何实现这一目标的信息吗 我们经常使用嵌套母版页 以便将布局与标准包含和站点范围标记分开 如下所示 站长
  • UIHint 不使用 EditorTemplate

    我有一个这样的模型 public class MyModel ScaffoldColumn false public int CharityId get set UIHint Charities public SelectList Char
  • 如何在 Razor 视图引擎中注册程序集

    我如何将其插入剃刀视图页面
  • Asp.Net 捆绑不使用 .min 文件

    根据发布模式下的文档 捆绑程序应该使用 min js 文件 如果存在 我通过以下方式添加角度 bundles Add new ScriptBundle Bundles Scripts Include Content Scripts angu
  • ASP MVC:何时调用 IController Dispose()?

    我正在对我的一个较大的 MVC 应用程序进行大规模重构 速度调整 它已经部署到生产环境几个月了 我开始在连接池中等待连接超时 我已将问题追溯到连接未正确处理的情况 鉴于此 我对我的基本控制器进行了以下更改 public class MyBa
  • ASP.NET MVC,Bootstrap Tables,获取每列的值

    在 ASP NET MVC 中 我有一个操作 它接受有关行和列的用户输入 然后导航到根据用户输入生成所需行数和列数的操作 如下所示 Views div class container style width 1px div class ro
  • 在 asp.net mvc 4 中使用 LinkedIn OAuth“登录失败”

    我正在查看 asp net mvc 4 附带的默认 OAuth 实现 它绝对令人印象深刻 因为我所要做的就是在 AuthConfig cs 中添加这一行 OAuthWebSecurity RegisterLinkedInClient key
  • 从mvc url中隐藏一个控制器名称,显示其他控制器名称

    我有两个控制器 HomeController 和 ResourcesController 当请求对 HomeController 执行操作时 我想从 url 中隐藏 Home 但对于 ResourcesController 或任何其他 co
  • MVC3 TextBoxFor 带有编码文本

    有没有办法将 TextBoxFor 助手与编码文本一起使用 例如 当使用 MVC3 With Razor 视图引擎的以下帮助程序时 Html TextBoxFor model gt model Description 并且对 model D
  • 如何在ListBox中加载大量数据? ASP.NET MVC 应用程序

    我正在使用 ASP NET MVC 应用程序 要求用户能够从可能包含超过 30 000 个条目的列表框中选择一个项目 是否有一种使用 Ajax 调用来填充此 ListBox 内容的动态方法 效果良好 我是否最好只填充服务器上的 ListBo
  • 显示 PDF ASP.Net MVC

    我的桌面上有一个文件用于测试 我试图在如下视图中显示它 ViewBag Title ShowFile h2 ShowFile h2 我用于控制器的代码是 HttpGet public ActionResult ShowFile string
  • 如何将 Orchard CMS 与当前的 MVC2 应用程序集成?

    对于我的项目 客户端有一个现有的 ASP NET MVC 2 Web 应用程序 该应用程序具有产品目录和购物车功能 客户正在重新设计他们的网站 并希望使用 Orchard 来维护他们的内容页面 例如主页 关于 服务等 他们希望尽可能多地使用
  • asp.net mvc 4 - 可以在每个线程共享 DbContext 吗?

    From 每个 Web 请求一个 DbContext 为什么 https stackoverflow com questions 10585478 one dbcontext per web request why 我的理解是 DbCont
  • 带有 HttpContext 的 ASP.NET MVC 单元测试控制器

    我正在尝试为我的一个控制器编写一个单元测试 以验证视图是否正确返回 但该控制器有一个访问 HttpContext Current Session 的基本控制器 每次我创建控制器的新实例时 都会调用 basecontroller 构造函数 并
  • ASP.NET MVC 和 Expression XAML - 如何集成?

    一些背景 ASP net MVC 主要是构建和开发 ASP NET 应用程序方式的范式转变 从 代码隐藏 类型的心态转变为更像标准 MVC Ruby on Rails 的心态 我赞扬它作为一种简化工具来简化单元测试和代码分离 尽管 html
  • MVC 项目中的 .Rdlc 报告 - 托管调试助手“PInvokeStackImbalance”

    我即将完成并运行我的上一份报告 我在其他报告中没有遇到过这个问题 我正在尝试根据数据库记录创建报告 当我通过 LocalReport 创建报告并为报告创建参数时 收到错误消息 托管调试助手 PInvokeStackImbalance 调用
  • 是否可以从 Razor/Blazor 组件获取原始 HTML?

    我想使用 MailKit 设置 邮件 新闻通讯 我的网站堆栈基于 Blazor Web 程序集并使用 Razor 组件 我想知道是否有一种方法可以使用我编写的剃刀组件 将 HTML 输出到我用来生成电子邮件正文的 MimeMessage 对
  • 将 EditForm 绑定到数组时如何让 EditContext.Validate() 工作

    我创建了一个EditForm像这样包装表格 Index razor using System ComponentModel DataAnnotations
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 表单身份验证 MVC4

    我正在尝试使用 MVC4 网站进行简单的表单身份验证设置 在App start FilterConfig cs中 public static void RegisterGlobalFilters GlobalFilterCollection

随机推荐