我有一个ASP.net Web服务,我用于Web应用程序,它向我返回XML或JSON数据,具体取决于我调用的函数.到目前为止,这一直运作良好,但我遇到了一个问题.我想在我的页面上创建一个"导出"链接,用于下载JSON文件.链接的格式非常简单:
<a href="mywebserviceaddress/ExportFunc?itemId=2">Export This Item</a>
Run Code Online (Sandbox Code Playgroud)
正如您可能想象的那样,这应该导出第2项.到目前为止,这么好,是吗?
问题是因为我并没有特别要求接受的内容类型是JSON,所以ASP.net绝对拒绝发回除XML以外的任何内容,这对于这种情况并不合适.代码基本如下:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public Item ExportItem(int itemId)
{
Context.Response.AddHeader("content-disposition", "attachment; filename=export.json"); //Makes it a download
return GetExportItem(itemId);
}
Run Code Online (Sandbox Code Playgroud)
尽管我将ResponseFormat指定为JSON,但除非我通过AJAX(使用Google Web Toolkit,BTW)请求此方法,否则我总是返回XML:
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "mywebserviceaddress/ExportFunc");
builder.setHeader("Content-type","application/json; charset=utf-8");
builder.setHeader("Accepts","application/json");
builder.sendRequest("{\"itemId\":2}", new RequestCallback(){...});
Run Code Online (Sandbox Code Playgroud)
这很好,但AJAX不会给我一个下载对话框.有没有办法迫使ASP.net给我回JSON,无论数据是如何请求的?在我看来,没有手动覆盖这种行为是一个严重的设计疏忽.
快速回答:
首先,我想说,我认为womp的答案可能是长期更好的方式(转换为WCF),但是deostroll让我得到了我将在不久的将来使用的答案.此外,应该注意的是,这似乎主要是因为我只想下载,在所有情况下都可能无法正常工作.在任何情况下,这里是我最终用来获得我想要的结果的代码:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void ExportItem(int itemId)
{
Item item = GetExportItem(itemId);
JavaScriptSerializer js = new JavaScriptSerializer();
string str = js.Serialize(item);
Context.Response.Clear();
Context.Response.ContentType = "application/json";
Context.Response.AddHeader("content-disposition", "attachment; filename=export.json");
Context.Response.AddHeader("content-length", str.Length.ToString());
Context.Response.Flush();
Context.Response.Write(str);
}
Run Code Online (Sandbox Code Playgroud)
请注意 …
我似乎遇到了检查列表相等性的问题.在我的情况下,我有两个角色对象,我想看看它们是否相等.每个角色都包含一个名称和一个权限列表.每个权限只包含一个名称.
public class Role : BaseDomain
{
virtual public String Name { get; set; }
virtual public IList Permissions { get; set; }
}
public class Permission
{
virtual public String Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我在Role和Permission对象上定义了一个equals方法.使用Nhibernate从数据库加载这些对象.这意味着Role实际上包含实现IList接口的NHibernate.Collection.PersistentBag类型的对象中的所有权限.
在Role类的equals方法中,我有一个条件如下:
if (!IList.Equals(Permissions, otherObj.Permissions)) return false;
Run Code Online (Sandbox Code Playgroud)
这总是返回false.即使列表中的权限包含具有相同顺序的相同名称的对象.如果我没有为Permission对象实现equals方法,这是有意义的,但我有.
当我执行这样的语句时:
role1.equals(role2);
Run Code Online (Sandbox Code Playgroud)
会发生什么是它首先进入Role对象的equals方法.好.equals方法检查角色的名称以查看它们是否相等.他们是.然后使用上面给出的代码检查权限是否等于.
我在Permission类的equals方法和GetHashCode方法中有一个断点.执行该语句时,不会调用权限类上的equals方法和GetHashCode方法,但它始终返回false.事实上,我无法弄清楚为了确定两个列表不相等而发生了什么.什么被执行?我甚至无法进入那行代码.
这似乎应该有效,但事实并非如此.有什么想法发生了什么?
我希望能够直接从NetBeans中的编辑器直接创建FogBugz案例.具体来说,我希望能够在IDE中查看JUnit运行,检查故障并使用我前面的信息直接创建案例(而不是剪切并粘贴到Web浏览器等).
我看到NetBeans 6.5.1默认提供Bugzilla,并以某种形式提供JIRA连接.是否有等效的FogBugz问题跟踪器?
PS:我知道FogBugz 7的新插件架构.但是,我真的很欣赏我能够承诺为NetBeans和/或FogBugz创建自己的插件的时间,我怀疑我会是能够做出足够的部分解决方案,让我的生活更糟,而不是更好.
假设我想制作一个使用固定宽度和高度的Web应用程序,我希望界面适合屏幕上的常见屏幕分辨率.假设该应用程序仅用于笔记本电脑和工作站(而不是移动设备),IT专业人员将使用它.
我可以制作应用程序的最大可能尺寸是多少?我认为这里的关键考虑因素是常用的最小屏幕分辨率以及为浏览器chrome保留多少空间,这可能取决于用户是否安装了工具栏等.
或者我应该使所有页面元素可调整大小并使用流畅的布局?这似乎可能是相当多的工作.
我知道如何使用INDEX,如下面的代码.我知道如何使用外键和主键.
CREATE TABLE tasks (
task_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
task VARCHAR(100) NOT NULL,
date_added TIMESTAMP NOT NULL,
date_completed TIMESTAMP,
PRIMARY KEY (task_id),
INDEX parent (parent_id),
....
Run Code Online (Sandbox Code Playgroud)
但是我发现使用KEY而不是INDEX的代码如下.
...
KEY order_date (order_date)
...
Run Code Online (Sandbox Code Playgroud)
我无法在MySQL官方页面中找到任何文档.
谁能告诉我KEY和INDEX之间有什么区别?我可以看到的不同之处在于,当我使用KEY ...时,我需要重复这个词,例如KEY order_date(order_date).
是否可以在Visual Studio 2008中取消/中止正在运行的构建过程?
怎么样?
使用asp.net 3.5 Gridview控件,visual studio 2008.
我玩过所有的css边框控件,无法在asp.net gridview中设置行之间水平线的颜色.线条的颜色似乎默认为白色.这些行可见的唯一方法是将网格视图的背景颜色设置为与白线形成对比的深色.
我设置了Gridlines = Horizontal但无法找到设置网格线颜色的方法.
gridview bordercolor属性仅影响整个网格视图周围的最外边框.
我宁愿不在javascript或jquery中这样做.
这应该正常吗?我不知道为什么不是.我必须做错事.
<div id="randomdiv">text</div>
<a id="refresh">click</a>
<script>
$(function() {
$("#refresh").click(function() {
$("#randomdiv").load("index.php")
})
})
</script>
Run Code Online (Sandbox Code Playgroud) 我在EAGLView图层上有一个opengl场景渲染,在UIView(它是EAGLView的兄弟,位于它上面)上呈现了一些其他元素(圆圈等).是否可以在两层之间混合颜色?我想做一些差异混合,以获得EAGLView颜色的反转效果.
我一直在玩CGBlendMode,但它似乎只影响我在当前视图中绘制的内容.我认为这与CGContext有关,但我对细节有点模糊,我可以强制UIView和EAGLView使用相同的CGContext,以便它们之间的混合有效吗?
帮助,更正,澄清都很受欢迎.在此先感谢,-S
在很多需要它的类中,我一直在使用这种复制方法.
class population (list):
def __init__ (self):
pass
def copy(self):
return copy.deepcopy(self)
Run Code Online (Sandbox Code Playgroud)
它突然开始产生这个错误:
File "C:\Python26\lib\copy.py", line 338, in _reconstruct
state = deepcopy(state, memo)
File "C:\Python26\lib\copy.py", line 162, in deepcopy
y = copier(x, memo)
File "C:\Python26\lib\copy.py", line 255, in _deepcopy_dict
y[deepcopy(key, memo)] = deepcopy(value, memo)
File "C:\Python26\lib\copy.py", line 189, in deepcopy
y = _reconstruct(x, rv, 1, memo)
File "C:\Python26\lib\copy.py", line 323, in _reconstruct
y = callable(*args)
File "C:\Python26\lib\copy_reg.py", line 93, in __newobj__
return cls.__new__(cls, *args)
TypeError: object.__new__(generator) is not safe, use …Run Code Online (Sandbox Code Playgroud) .net ×1
abort ×1
asmx ×1
asp.net ×1
bug-tracking ×1
c# ×1
css ×1
eaglview ×1
fogbugz ×1
generator ×1
gridview ×1
html ×1
ilist ×1
indexing ×1
iphone ×1
javascript ×1
jquery ×1
json ×1
key ×1
layout ×1
mysql ×1
netbeans ×1
nhibernate ×1
opengl ×1
plugins ×1
python ×1
refresh ×1
uikit ×1
uiview ×1
web-services ×1