如何在PowerApps模型驱动应用中通过URL传递参数?
模型驱动应用中通过URL传递参数的实现方法
一、直接构造应用URL传递参数
模型驱动应用的URL支持通过extraqs参数传递自定义键值对,核心结构如下:
https://<你的环境域名>/main.aspx?appid=<目标应用ID>&pagetype=entityrecord&etn=<实体逻辑名>&id=<记录ID>&extraqs=param1=value1%26param2=value2
- 其中
extraqs后的内容需做URL编码(比如&要转成%26) - 若要打开视图而非单条记录,可将
pagetype设为entitylist,并指定viewid参数
在表单中获取参数的方式:使用JavaScript调用全局上下文API
// 获取所有URL参数 const queryParams = Xrm.Utility.getGlobalContext().getQueryStringParameters(); // 读取指定参数 const paramValue = queryParams.param1;
二、通过客户端API跳转并传参
如果是在模型驱动应用内部跳转(比如自定义按钮、脚本触发),推荐用Xrm.Navigation.openForm方法,直接在配置中传入参数:
Xrm.Navigation.openForm({ entityName: "account", entityId: "55555555-5555-5555-5555-555555555555", extraQueryParameters: "param1=test¶m2=123" }).then( function (success) { console.log(success); }, function (error) { console.log(error); } );
这种方式无需手动编码URL,API会自动处理参数格式。
三、自定义页面(嵌入画布应用)接收参数
如果是在模型驱动应用中嵌入的自定义页面(画布应用),可以直接用Power Apps的Param()函数读取URL参数:
// 获取名为"param1"的参数值 Param("param1")
传递参数时,只需在打开自定义页面的URL中追加?param1=value1即可,或者通过Xrm.Navigation.navigateTo方法的data属性传递更复杂的参数结构。
注意事项
- 所有参数值需符合URL规范,特殊字符必须编码(比如空格用
%20,中文用UTF-8编码) - 若参数用于业务逻辑,需在前端脚本或后端插件中做合法性校验,避免注入风险
- 测试时可通过浏览器开发者工具的"网络"面板查看请求URL,确认参数是否正确传递
内容的提问来源于stack exchange,提问作者Jaqen H'ghar
相关产品推荐
相关产品推荐

