我有以下代码下载.csv文件:
$.ajax({
url: urlString,
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function(data) {
if (data) {
var iframe = $("<iframe/>").attr({
src: data,
style: "visibility:hidden;display:none"
}).appendTo(buttonToDownloadFile);
} else {
alert('Something went wrong');
}
}
});
Run Code Online (Sandbox Code Playgroud)
的urlString指向到生成RESTful服务.csv文件,并返回其被分配给用于所述iFrame的src属性的文件路径.这适用于任何.csv文件,但我遇到.xml文件问题.
当我使用相同的代码但更改contentType为text/xml并使用它来下载.xml文件时,这不起作用.
我可以在这里使用相同的方法来处理.xml文件吗?
更新:
感谢Ben指出了正确的方向.事实证明我根本不需要ajax调用.相反,我可以使用iFrame及其url属性来调用Web服务,它将生成内容,添加header(Content-Disposition)并返回流.
我正在使用 EF6。生成的代码类似于:
public partial class MyDataContext : DbContext
{
public MyDataContext() : base("name=mydata")
{
}
public virtual DbSet<Book> Books { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个通用存储库,如:
public class GenericRepository<TObject> where TObject : class
{
protected readonly MyDataContext Context;
protected GenericRepository(MyDataContext context)
{
Context = context;
}
public virtual DbSet<TObject> GetAll()
{
return Context.Set<TObject>();
}
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个使用 GenericRepository 返回数据的服务:
public class MyDataService<TObject> where TObject : class
{
private readonly MyDataContext context;
public MyDataService(MyDataContext ct)
{
context = ct;
}
public ICollection<TObject> GetAll() …Run Code Online (Sandbox Code Playgroud) 我正在尝试一个非常简单的SignalR演示,但在我的javascript中的以下行中得到臭名昭着的"未定义"错误:
var myHub = $.connection.myHub;
Run Code Online (Sandbox Code Playgroud)
MyHub.cs如下:
public class MyHub : Hub
{
...
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我见过的大多数示例都是MVC或Web应用程序项目.有了这些,MyHub.cs将被放置在App_Code文件夹中.但是,我们的项目是一个网站项目,我们无法将其更改为Web应用程序.
我能做些什么才能让它发挥作用?
我有这样的结构:
public struct MyStruct
{
public string Name;
public bool Process;
}
Run Code Online (Sandbox Code Playgroud)
我有一个myStruct列表,如下所示:
"123",是的
"123",假
"234",是的
"345",不对
"456",是的
"456",不对
我希望能够使用LINQ返回这样的列表:
"123",假
"234",是的
"345",不对
"456",不对
所以基本上我想要的结果是一个不同名称的列表("123","234",...等)以及布尔标志,如果名称重复,我需要对标志进行"AND"操作.
使用单个LINQ语句有一种简单的方法吗?
我有一个自定义编辑器,我使用自动完成功能.Web服务被调用并返回数据.但是,编辑中没有任何内容.我在schema.parse()中放了一个断点,但它永远不会被击中.我错过了什么?
function myAutoCompleteEditor(container, options) {
$('<input data-text-field="Name" data-value-field="Name" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoAutoComplete({
autoBind: false,
suggest: true,
delay: 500,
dataSource: new kendo.data.DataSource({
serverFiltering: true,
transport: {
read: function (opt) {
$.getJSON("/myWebService/GetData");
},
},
schema: {
errors: function (e) {
return e;
},
parse: function (data) {
return data.Name;
}
}
})
});
}
Run Code Online (Sandbox Code Playgroud)
更新:
通过JSON.stringfy(数据)显示的数据如下所示:
[{"地址":"123 1st St.","ID":"1","Name":"David"},{"Address":"234 2nd St.","ID":"2", "名称": "史密斯"}]
更新2:
代码现在看起来像这样:
function myAutoCompleteEditor(container, options) {
$('<input data-text-field="Name" data-value-field="Name" data-bind="value:' + options.field + '"/>')
.appendTo(container)
.kendoAutoComplete({ …Run Code Online (Sandbox Code Playgroud) 我知道您可以使用复选框模板来控制其外观,但是如何隐藏根节点(并且仅隐藏根节点)的复选框?
更新
下面的答案也能达到这个目的。然而,我最终使用了这样的模板:
checkboxes: {
checkChildren: true,
template: "# if(item.Id != 1){# <input type='checkbox' name='section[#= item.Id #]' value='true' />#} #"
}
Run Code Online (Sandbox Code Playgroud)
“Id”是我的数据源中的 id 字段。
我有一个这样的课:
public class MyClass
{
public int Line;
public string Name1;
public string Name2;
}
Run Code Online (Sandbox Code Playgroud)
和MyClass对象的集合:
List<MyClass> myObjs = myService.GetObjects();
Run Code Online (Sandbox Code Playgroud)
哪里myObjs有2个元素:
[0]: Line: 1, Name1: "Test1", Name2: "Test2"
[1]: Line: 2, Name1: "Test3", Name2: "Test4"
Run Code Online (Sandbox Code Playgroud)
我想让每个对象的属性连接在一个字符串中,如:
"1,Test1,Test2;2,Test3,Test4"
Run Code Online (Sandbox Code Playgroud)
我试过了 string.Join(",", myObjs.Select(x => x.Line));
但这只给了我一个所有Line值的列表.我需要对象中的所有内容.
我有这样的指数:
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open .marvel-2015.08.15 1 1 11091 0 11.6mb 17.6mb
yellow open myindex 5 1 104321 14891 22.5mb 32.7mb
yellow open .marvel-2015.08.17 1 1 62214 0 70.2mb 90.9mb
Run Code Online (Sandbox Code Playgroud)
以".marvel"开头的索引每天都会创建.这些是什么?删除它们是否安全?
我有一个像这样的字符串:
'111,222,333,444'
Run Code Online (Sandbox Code Playgroud)
我要做的就是将其变成这样:
'111','222','333','444'
Run Code Online (Sandbox Code Playgroud)
我可以编写一个将字符串拆分为临时表并遍历每一行以添加引号的函数。但是我真的不想使用游标来执行此操作。有没有更简单的方法?
c# ×3
kendo-ui ×2
linq ×2
asp.net ×1
javascript ×1
jquery ×1
kendo-grid ×1
moq ×1
signalr ×1
t-sql ×1
unit-testing ×1