C# MVC 视图之间没有提交传递对象

2023-12-13

我对我的拼写错误感到抱歉。我正在开发概念验证 C# ASP.NET MVC 应用程序,其中我需要在没有 post 和 get 的情况下在两个视图之间传递数据。一个视图启动一个模式对话框,我需要它们之间的通信。我们正在使用 JQuery。

我有一个名为 Charges.cshtml 的视图,带有数据网格。数据网格的第一列可能具有 span 元素或 link 元素,具体取决于 属性将告诉收费是否有单个或多个描述。视图如下所示。

Charges

如果费用有多个描述,用户将单击相应的描述链接(在本例中为“描述 2”),然后将打开一个模式对话框,显示各种描述,如下所示

Multiple Descriptions

现在,在此模式对话框中,用户将确认/选择一个描述。现在我需要关闭模式对话框并更新所选的描述 如下收费

Updated Description

这里的困难部分是如何在两个视图之间传递数据。我可以通过控制器或 JavaScript 传递数据。

我尝试了各种方法将选定的费用从 Charges.cshtml 传递到 LoanCharge 控制器中的 LoadLoanChargeDescriptions 方法,例如 json 序列化、ViewData、ViewBag、TempData 等,但没有用。我可以传递简单的数据类型,如 int、string、float,但不能传递整个对象。我觉得我需要将 CurrentDescription 和 Descriptions 传递给我的控制器,然后我需要从它们移动到其他部分。我尝试传递字符串列表,但无法看到如何在控制器中访问它们,因为我在控制器中计数为 0。我可以打开多个描述 UI 的弹出窗口(目前仅添加了 Hello 文本)

请参阅下面的我的代码片段

收费.cshtml

@model ChargeViewModel
@using (Html.FAFBeginForm())
{
    <div>
            <table>
                <tbody>
                <tr >                   
                    //.....                     
                    <td>
                        @if(Model.IsMultipleMatch)
                        {
                            var loanCharge = Model as ChargeViewModel;
                            if (loanCharge.IsMultipleMatch == true)
                            {
                                //string vm = @Newtonsoft.Json.JsonConvert.SerializeObject(loanCharge);                                                                             
                                <span>
                                    <a 
onclick="ShowMatchingDescriptions('@Url.Action("LoadLoanChargeDescriptions", "LoanCharge")','', '920','500')">
                                        @loanCharge.Description
                                    </a>
                                </span>    
                             }                        
                        }
                        else
                        {
                            <span>Model.Description</span>
                        }  

                    </td>
                </tr>                     
                </tbody>    
            </table>
    </div> 
}

public class ChargeViewModel
{
  public string Description {get;set;}
  public bool IsMultipleMatch {get;set;}
  public List<string> Descriptions {get;set;}
}

public class LoanChargeController
{
  public ActionResult LoadLoanChargeDescriptions()
  {
      // get data here and pass/work on
      return View("_PartialMultipleMatchPopup", null);
  }
}

在 Review.js 中

function ShowMatchingDescriptions(popUpURL, windowProperties, w, h) {
    try {                
        var left = (screen.width / 2) - (w / 2);
        var top = (screen.height / 2) - (h / 2);

        var properties = windowProperties + "dialogwidth:" + w + "px;dialogheight:" + h + "px;dialogtop:" + top + "px;dialogleft:" + left + "px;scroll:yes;resizable:no;center:yes;title:Matching Lender’s Fee;";
        $.when(
        window.showModalDialog(popUpURL, window, properties)
        )
        .then(function (result) {
            var childWindow = result;
        });
    }
    catch (err) {
        alert("Error : " + err)
    }
}

UPDATE 1

我更新了我的问题并发布了更多详细信息。

提前致谢。

UPDATE 2

请在下面的链接中查看我的解决方案。

父子窗口之间的MVC传递模型


为什么不使用 AJAX 来传递数据呢?

    function ChargeViewModel() {
        this.Description ='';
        this.IsMultipleMatch =false;

    }

    var chargeViewModel= new ChargeViewModel();
    var data = JSON.stringify({ 'chargeViewModel': chargeViewModel });

    $.ajax({
        contentType: 'application/json; charset=utf-8',
        dataType: 'html',
        type: 'POST',
        url: '@Url.Action("LoadLoanChargeDescriptions", "LoanChargeController")',
        data: data,
        success: function (result) {
           //result will be your partial page html output
        },
        failure: function (response) {

        }
    });

然后你必须像这样更改控制器:

public ActionResult LoadLoanChargeDescriptions(ChargeViewModel chargeViewModel)
  {
      // get data here and pass/work on
      return View("_PartialMultipleMatchPopup", null);
  }

让我知道您有疑问..

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

C# MVC 视图之间没有提交传递对象 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

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

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 良好的 WiX 编辑器 [重复]

    这个问题在这里已经有答案了 我目前正在开发一个使用 WiX 创建 MSI 的项目 我过去在 Sourceforge 上使用 WiXEdit 来管理包含在 WiX 项目中的文件 因为它比直接操作 XML 稍微容易一些 但它仍然有点笨重 有谁知
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • Azure ML 和 Azure ML 实验之间的区别

    我是 Azure ML 的新手 我有一些疑问 有人可以澄清下面列出的我的疑问吗 Azure ML 服务和 Azure ML 实验服务之间有什么区别 Azure ML 工作台和 Azure ML Studio 之间有什么区别 我想使用 azu
  • 编辑控件不生成 WM_COMMAND 消息

    我有一个编辑控件 在父窗口中我正在听WM COMMAND信息 但我的控件不会在更改时发送它 此外 当我使用 Spy 观看消息时 我只能在编辑控件本身上看到不同的键盘消息 并且主父窗口中的唯一消息是WM CTLCOLOREDIT P S 我正
  • 如何在TabView的选项卡之间发送信号(Qt5)

    我有带有两个选项卡的 TabView 每个选项卡都有 Item 元素 其中包含其他内容 我需要从一个选项卡发送信号并在其他选项卡中捕获 处理 它 如果我尝试将信号从一个选项卡 项目 发送到另一个选项卡 它不起作用 并且不会显示任何错误 我找
  • React Noob - onChange 元素失去焦点

    我正在尝试创建一个基本的登录页面 该页面接受用户凭据并将其提交到登录 api 问题是当onChange事件触发 设置用户凭据 元素失去焦点 我不应该更新凭证吗onChange import React Component PropTypes
  • 显示来自 GridFS 的 HTML 图像

    我正在 GridFS 中上传图像 但不知道如何在 img tag 我尝试了以下代码 conn once open function var gfs Grid conn db mongoose mongo gfs files find fil
  • WiX v3 安装项目,无法通过应用程序和功能卸载

    我很难弄清楚是什么导致了这个奇怪的问题 因此 我按照 WiX v3 安装项目文档创建了一个非常基本的 msi 几乎只是提供的模板 但无论我尝试什么 每当我通过 Windows 10 卸载它时Apps Features界面 我不断收到这个 但
  • Typescript如何使用稍后指定的泛型类型?

    首先 这是我第一次用CodeSandbox来创建一个简化的例子 欢迎任何有关如何改进这一点的建议 问题 我想介绍动物的事实 有些事实是所有动物共有的 而另一些则是动物特有的 在我的主要组件中App 我还不知道类型 所以我想保留它的通用性An
  • 通过 AlarmManager 设置不精确的警报时会有多少延迟? [复制]

    这个问题在这里已经有答案了 使用时AlarmManager要设置闹钟 除非您设置了精确的闹钟 否则可能会出现延迟 在指定时间之后的某个时间触发闹钟 是否可以保证延迟的范围是多少 我想成为一名负责任的开发人员 如果延迟不超过 例如 一分钟 则
  • 在iphone中的uiwebview中显示文本

    我想在 uiwebview 中显示文本数据 有人可以指导如何做同样的事情 使用 UIWebViews loadHTMLString 方法 void loadHTMLString NSString string baseURL NSURL b
  • 在 SQL 中使用变量模式持久保存复杂类型的最有效方法

    我在做什么 我正在创建一个 SQL 表 它将为复杂类型的对象提供后端存储机制 我正在尝试确定如何以最佳性能实现这一目标 我需要能够查询复杂类型的每个单独的简单类型值 例如 地址复杂类型中城市的字符串值 我原本以为可以将复杂类型值作为 XML
  • Eclipse 告诉我一个方法未定义,而实际上它已明确定义

    我正在 RAD 7 5 中工作 我正在将一个包从一个 Web 项目导入到另一个 Web 项目中 我实例化该类并尝试使用其方法之一 但出现该方法未定义的构建错误 该方法是公开的 除此方法外 所有其他方法均有效 我从中导入的项目已正确构建 我尝
  • 正则表达式 - 以特定字符串开头但不以另一个子字符串结尾

    给定两个字符串s1 and s2 我正在尝试编写一个正则表达式来匹配以s1但不以s2 示例 s1 测试 s2 坏 TEST 101比赛 测试一些 DESC 匹配 TEST 101 BAD 不应匹配 TEST SOME DESC BAD 不应
  • 无法让 Elasticsearch 与 Django 一起使用

    我正在尝试在 Ubuntu 14 04 上使用 Django 和 Haystack 以及 Elasticsearch 作为后端 我安装了 Elasticsearch 和 Haystack 运行 python manage py runser
  • 设计一个具有延迟加载属性的 Java POJO

    请考虑下面的例子 Web 应用程序为每个登录用户创建一个用户对象 这个对象有简单的String属性为firstName lastName 每个用户都可以拥有一个car也 考虑获取用户car非常昂贵 因此我们不希望在用户登录时设置用户的汽车
  • 无法使用 WebSockets 连接,未更改readyState

    我尝试了几种方法 甚至复制 粘贴http code google com p phpwebsocket 我使用 Google Chrome 5 0 375 70 beta 错误总是相同的 错误 INVALID STATE ERR DOM 异
  • Groovy Power 打印

    Groovy 有一个电源断言 但我想要一个电源打印 例如 def foo banna5 monkey 7 x 70 println foo foo monkey monkey x 2 x 2 看到 println 行中重复的 foo mon
  • 如何匹配CIM/RDF中的JAXB元素?

    尝试根据 IEC 61970 通用信息模型 用于电力系统模型 从 CIM XML 文件加载模型时 我发现了一个问题 根据 JAXB 元素之间的图表由 XmlREF XmlID 提供 并且这两者应该等于匹配 但在 CIM RDF 中 通过 I
  • 插入地图的首选/惯用方式是什么?

    我已经确定了将元素插入到 a 中的四种不同方法std map std map
  • 从区域和时间创建 std::chrono::zoned_time

    我有一个柏拉图意义上的日期时间 即某个日期和时间 例如 2022 年 1 月 18 日 15 15 00 并且我知道它代表哪个时区 例如 欧洲 莫斯科 我想创建std chrono zoned time 有可能吗 我在看构造函数似乎他们都需
  • C# MVC 视图之间没有提交传递对象

    我对我的拼写错误感到抱歉 我正在开发概念验证 C ASP NET MVC 应用程序 其中我需要在没有 post 和 get 的情况下在两个视图之间传递数据 一个视图启动一个模式对话框 我需要它们之间的通信 我们正在使用 JQuery 我有一