【问题标题】:ASP.NET MVC3 - displaying "updated" model values for summary display before form submissionASP.NET MVC3 - 在表单提交之前显示“更新的”模型值以进行摘要显示
【发布时间】:2012-04-18 17:37:17
【问题描述】:

我有一个名为AddEditModule 的视图,不管你信不信,它用于添加或编辑模块。工作流程是一种使用导航按钮来隐藏/显示 div 的向导。

我有一个名为 AddEditModuleModel 的 ViewModel(比方说快 10 倍)。在第 1 步和第 2 步中,我使用各种 EditorFor 来显示我的字段。在第 3 步中,我想使用 DisplayFor 来显示我的文本框的当前值的摘要(视图中更新的内容,而不是模型中传入的内容)。

在我的 Silverlight 时代,我只需在 'Step1.FirstName' TextBox 和 ViewModel 属性之间进行双向绑定。在我的摘要中,我可以简单地显示一个也绑定到我的 ViewModel 属性的 TextBlock,或者我可以使用元素绑定将我的 TextBlock.Text 属性绑定到我的 Step1.FirstName.Text 属性。

我知道我不能在 MVC3 中做到这一点,但我不确定如何解决这个问题。我想过只是 ajax 发布更新的模块并返回一个名为 ModuleSummary 的新局部视图,或类似的东西,但这似乎有点 hacky(并且不完全确定这是否会弄乱我在页面上上传的文件)。

我有什么遗漏吗?

[编辑 - 示例代码]

场景: 我正在编辑一个最初标题为“我的模块”的模型。显然在初始加载时,我的 DisplayFor model.title 将设置为“我的模块”。假设在第 1 步中,我将标题更改为“我的新模块标题”。我想知道的是,当我单击按钮以显示摘要以显示我的新标题时,是否有办法“刷新”我的模型。

@model CEAcademy.AddEditModuleModel
@using (Html.BeginForm("AddModule", "Module", FormMethod.Post, new { enctype = "multipart/form-data" })) {
@Html.ValidationSummary(false)
<fieldset>
    <legend></legend>  
    <div id="step1">
        <div class="editor-label">
            @Html.LabelFor(model => model.title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.title)
            @Html.ValidationMessageFor(model => model.title)
        </div>
    </div>
    <div id="summary">
        <div class="display-label">
            @Html.LabelFor(model => model.title)
        </div>
        <div class="display-field">
            @Html.DisplayFor(model => model.title)
        </div>            
    </div>
    <input type="button" id="showSummary" value="Step 2: View Summary" />
</fieldset>
}

【问题讨论】:

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


    【解决方案1】:

    有人刚刚问了一个类似的问题 Display form data before final submission (confirmation view) 我会问你同样的问题,我问那个人。你需要去服务器吗?在显示摘要之前是否需要做一些额外的验证? 如果没有,那么您可以“轻松”地执行此客户端。使用 javascript(jQuery 或其他一些库)显示摘要并在最后发布数据。

    【讨论】:

    • 使用大量的 jQuery,所以这不会是一个问题。我知道 MVVM (silverlight) 在 RAM 中运行客户端,但我想,现在我想起来了,我在 MVC 中的视图模型永远不会作为实际对象找到客户端,所以我没有什么可更新的。感谢反馈
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2014-01-02
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多