gpt4 book ai didi

c# - 南希访问/重写响应

转载 作者:太空狗 更新时间:2023-10-30 01:23:15 27 4
gpt4 key购买 nike

在 Nancy 找到 View 并处理所有内容后,我试图将一些文本(特别是几行 javascript 代码)注入(inject)到 HTML 响应中。 After钩子(Hook)似乎是我想做的地方。我可以访问 Response通过我给出的上下文访问对象,但我尝试从中检索任何数据的尝试失败了。它的类型是 Action<Stream>所以我一直想把它写入内存,然后是一个字符串如下:

public HelloModule()
{
After += ctx => {
var stream = new MemoryStream();
ctx.Response.Contents.Invoke(stream);

stream.Position = 0;
using (var reader = new StreamReader(stream))
{
var content = reader.ReadToEnd();
}
};

Get["/"] = p => View["Issues/Views/SingleIssue"];
}

但是,当它运行时,我在 ctx.Response.Contents(stream); 行得到一个异常.异常(exception)是 InvalidOperationException这只说明 "CSRF is not enabled on this request" .

所以,我的问题是:如何让 Nancy 允许我访问当前 Response 的 HTML它生产的?或者我完全不了解我正在尝试如何做到这一点?有没有更好的办法?

编辑 2:这似乎是 SuperSimpleViewEngine 的问题。我刚刚创建了一个新的、干净的项目,只有一个 View 。 SSVE 可以重现它,但 Spark View 引擎可以正常工作。

编辑 1:

根据要求提供更多信息。上面的代码现在包含模块的整个构造函数。我没有自定义 Bootstrap 或其他逻辑。该 View 是一个使用默认 SuperSimpleViewEngine 的相当简单的 View ,它的组成如下:

Master.sshtml

<html>
<head>
<script type="text/javascript" src="/Scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.22.min.js"></script>
<script type="text/javascript" src="/Scripts/jquery-ui-1.8.21.custom.min.js"></script>
<script type="text/javascript" src="/Scripts/dais-exts.js"></script>
<link rel="stylesheet" type="text/css" href="/Content/Style.css" />
<link rel="stylesheet" type="text/css" href="/Content/jquery-ui-1.8.21.custom.css" />
@Section['Head']
</head>
<body>
@Section['Content']
</body>
</html>

SingleIssue.sshtml

@Section['Head']
<title>Hello!</title>
@EndSection

@Section['Content']
<h2>View/Edit Issue</h2>

<form id="issue-form" method="post">
<input type="hidden" name="HttpMethod" value="Put" />
<input type="submit" />
</form>
@EndSection

最佳答案

回答这个问题,让任何发现这个的人都知道发生了什么。

这实际上是 Nancy(版本 0.11)中的一个错误,并且仅在使用 SuperSimpleViewEngine 时发生。不幸的是,没有简单的解决方法或解决方案,但已对源代码进行了修复。因此,解决该问题的选项是:

  • 等待 Nancy 0.12。
  • 自己从 source 构建一个新版本.
  • 使用不同的 View 引擎。

关于c# - 南希访问/重写响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11718310/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com