controller - 使用参数从 Web API 控制器获取 SSMS 中的数据
问题描述
就我而言,我需要从 Web api 控制器(使用 XML 数据)获取 SSMS 中的数据。此外,需要从 SSMS 向控制器发送一些参数。
解决方案
在 SSMS 中:用于从“共享数据源属性”中使用的控制器获取数据 - 类型:XML,
连接字符串:https://siteAdress/api/ControllerName/MethodName
在共享数据属性 - 数据源:使用上一步中的数据源,查询类型:文本,
查询: 点此查看
在共享数据属性 - 参数中:添加一个参数(例如“pUserLodin”,数据类型为 - 文本,无默认值)。
在报表数据 - 数据集属性 - 查询中:使用上一步中的共享数据集,
在报告数据 - 数据集属性 - 参数:初始参数“pUserLodin”中,在我的情况下,我设置了值“=mid(User!UserID, InStr(User!UserID,"")+1)”。
在 Web API 控制器中(在您可以使用代码的方法中,它可以显示如何获取和发送数据):
[HttpPost]
[HttpGet]
[ReadableBodyStream]
[AllowAnonymous]
public ActionResult MethodName()
{
string body = string.Empty;
string userLogin = string.Empty;
HttpContext.Request.Body.Seek(0, SeekOrigin.Begin);
using (StreamReader stream = new StreamReader(HttpContext.Request.Body))
{
body = stream.ReadToEndAsync().Result;
}
if (body != string.Empty)
{
userLogin = body.Split('=')[1];
}
if (userLogin == string.Empty)
{
return GetDefaultData(); // For Shared Dataset only.
}
string stringData = string.Empty;
var xmlserializer = new XmlSerializer(typeof(List<MyType>));
var stringWriter = new Utf8StringWriter();
using (var writer = XmlWriter.Create(stringWriter))
{
xmlserializer.Serialize(writer, orgUnits);
stringData = stringWriter.ToString();
}
return Content(stringData, "text/xml", Encoding.UTF8);
}
public class ReadableBodyStreamAttribute : AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
// context.HttpContext.Request.EnableRewind(); // For ASP.NET 2.1
context.HttpContext.Request.EnableBuffering(); // For ASP.NET 3.1
}
}
推荐阅读
- docker - 与 gitlab 容器注册表的连接被拒绝
- keras - 如何在 Keras 中构建具有多个输出的神经网络回归模型
- javascript - 使用 @stripe/stripe-react-native 处理 Stripe 时抛出错误
- visual-studio - 在 kuberentes 上进行端口转发后,无需任何身份验证即可连接到远程 Jupyter 服务器
- r - 使用 glmer 函数的错误消息“pwrssUpdate 中的错误”
- css - 使用 webpack 将 CSS 加载到 React 组件中不起作用
- java - 在 Java 中编写 get 方法有不同的方法吗?
- javascript - React / JSX - 计算列表中真实语句的数量
- node.js - 如何在 env 文件中指定公钥和私钥
- css - 更改跨度类颜色