寻找一个通用案例解决方案来确定当前是否有任何jquery对话框(有多个).试过:
$(".ui-dialog-content").dialog("isOpen") === true
$(".ui-dialog").dialog("isOpen") == true
$(document).dialog("isOpen") == true
$("*").dialog('isOpen') == true
Run Code Online (Sandbox Code Playgroud)
没有任何成功.我希望".ui-dialog-content"可以正常工作,因为我显然可以关闭任何与该选择器打开的对话框,但事实并非如此.
Razor的自动逃生让我感到困惑.我正在构建一个url来提供给jquery的$ .load方法:
<script>
$("#baz").load('@Url.Action("Method", new { foo=Model.Foo, bar=Model.Bar })');
<script>
Run Code Online (Sandbox Code Playgroud)
问题是,url在发出的脚本中出现转义(&==&)
<script>
$("#baz").load('Method?foo=Foo&bar=Bar');
<script>
Run Code Online (Sandbox Code Playgroud)
所以MVC对请求说扼要说没有提供bar参数.
我已经尝试在@ Html.Raw中包装调用但仍然似乎逃脱了网址.回到星球上的aspx,我只是做<%=而不是<%:但显然这并不好:).我也尝试将参数放在$ .load的数据对象中,但这似乎强制发布一个帖子,而不是get(我想要一个get).
这是我可以用路由修复的东西,但是这个项目还没有 - 仍然可以在不弄乱路由的情况下降低功能.另一方面,我需要能够最终路由这个URL,所以我不想只是对查询字符串进行硬编码.
有什么想法吗?
我试图了解 Filepond 正在上传到我的服务器方法的内容,但我遇到了一些非常令人困惑的事情。我只使用process
服务器方法,并且一次测试一个文件。这是我的 Filepond 定义(这是与打字稿反应)
<FilePond
ref={this.pond}
allowMultiple={true}
maxFiles={3}
instantUpload={false}
onupdatefiles={(files) => this.setState({files: files})}
files={this.state.files}
// @ts-ignore
server={{
process: this.getProcessUrl(),
revert: null,
fetch: null,
load: null,
restore: null,
}}/>
Run Code Online (Sandbox Code Playgroud)
files
在状态对象上定义为any[]
。processFiles()
我们通过组件保留的元素引用来手动触发上传。根据页面其他位置生成的 id 构建 FilePond,并为其提供要传递的 auth 标头getProcessUrl
。ServerUrl
所以基本上server.process
看起来像这样:
{
url: "http://server/api/1234/upload",
method: "POST",
headers: {"Authorization": "foo"}
}
Run Code Online (Sandbox Code Playgroud)
当添加单个文件(通过拖放,如果重要的话,通过拖放)触发上传时,如果我查看state.files
数组中的一项,我发现我还没有通过浏览测试这一点。但是,Filepond 提交到我的服务器的内容如下所示:
------WebKitFormBoundary1YHKxKgBU2cvURKi
Content-Disposition: form-data; name="filepond"
{}
------WebKitFormBoundary1YHKxKgBU2cvURKi
Content-Disposition: form-data; name="filepond"; filename="test.csv"
Content-Type: text/csv
------WebKitFormBoundary1YHKxKgBU2cvURKi--
Run Code Online (Sandbox Code Playgroud)
请注意首先发送的名为“filepond”的额外表单数据。
我一直在查看文档,在这种情况下,实际的帖子正文应该是什么样子,并没有告诉我期待多部分表单数据,所以我不明白我所看到的内容。额外的表单数据是否应该存在,而我的服务器代码应该忽略它还是什么?
谢谢。