我在JSON中有一个简单的键/值列表,通过POST发送回ASP.NET.例:
{ "key1": "value1", "key2": "value2"}
Run Code Online (Sandbox Code Playgroud)
我并没有想要进入强大的.NET对象
我只需要一个普通的旧的Dictionary(Of String,String),或者一些等价的(hash table,Dictionary(Of String,Object),old-school StringDictionary - hell,一个2-D字符串数组对我有用.
我可以使用ASP.NET 3.5中的任何可用内容,以及流行的Json.NET(我已经将其用于序列化到客户端).
显然,这些JSON库都没有开箱即用的明显功能 - 它们完全专注于通过强大的合同进行基于反射的反序列化.
有任何想法吗?
限制:
我正在使用jQuery将一些鼠标悬停效果连接到UpdatePanel内的元素.事件受到约束$(document).ready
.例如:
$(function() {
$('div._Foo').bind("mouseover", function(e) {
// Do something exciting
});
});
Run Code Online (Sandbox Code Playgroud)
当然,这工作正常第一次加载页面时,但是当在UpdatePanel做局部页面更新,它无法运行,鼠标悬停效果不工作了的UpdatePanel内.
在jQuery中连接东西的推荐方法是什么,不仅在第一页加载时,而且每次UpdatePanel都会触发部分页面更新?我应该使用ASP.NET ajax生命周期而不是$(document).ready
吗?
我正在尝试创建控制器操作,它将返回JSON或部分html,具体取决于参数.将结果异步返回到MVC页面的最佳方法是什么?
我有一个简单的actionmethod,返回一些json.它在ajax.example.com上运行.我需要从另一个站点someothersite.com访问它.
如果我试着打电话给我,我会得到预期的......:
Origin http://someothersite.com is not allowed by Access-Control-Allow-Origin.
Run Code Online (Sandbox Code Playgroud)
我知道有两种解决方法:JSONP和创建自定义HttpHandler来设置标头.
有没有更简单的方法?
简单的动作是否不可能定义允许的起源列表 - 或者简单地允许每个人?也许一个动作过滤器?
最佳将是......:
return json(mydata, JsonBehaviour.IDontCareWhoAccessesMe);
Run Code Online (Sandbox Code Playgroud) 在调试使用AJAX的jQuery应用程序时,我经常需要查看服务返回给浏览器的json.所以我将把JSON数据的URL丢弃到地址栏中.
这对ASPNET很好,因为在编码错误的情况下,我可以在浏览器中看到ASPNET诊断:
但是当服务器端代码正常工作并实际返回JSON时,IE会提示我下载它,所以我看不到响应.
我可以让IE不这样做,换句话说,只是将它显示为纯文本?
我知道如果我将Content-Type标头设置为,我可以这样做text/plain
.
但这特别是ASPNET MVC应用程序的上下文,当我在我的一个动作方法上使用JsonResult时,它自动设置响应.另外,我有点想保留适当的内容类型,而不是仅仅为了支持调试工作而改变它.
我的页面上有几个输入和选项元素,每个(几乎都有)附加了一个事件,一旦它们发生变化就会更新页面上的一些文本.我用jQuery真的很酷:)
我还使用了微软的Ajax框架,利用了UpdatePanel.我之所以这样做,是因为某些元素是基于某些服务器端逻辑在页面上创建的.我真的不想解释为什么我使用UpdatePanel - 即使它可以(它可以付出相当大的努力)被重写为仅使用jQuery我仍然想要UpdatePanel.
您可能已经猜到了 - 一旦我在UpdatePanel上回发,jQuery事件就会停止工作.我实际上是在期待这个,因为"回发"并不是真正的新回发所以我在document.ready中绑定事件的代码将不再被触发.我还通过在jQuery帮助库中阅读它来证实了我的怀疑.
无论如何,在UpdatePanel完成更新DOM之后,我仍然遇到重新绑定控件的问题.我最好需要一个不需要向页面添加更多.js文件(jQuery插件)的解决方案,但是能够捕获UpdatePanel的'afterupdating'这样简单,我可以调用我的方法重新绑定所有表单元素.
当用户悬停页面的某些元素时,我正在使用jQuery tip插件来显示帮助提示.
我需要在使用css选择器加载页面后注册插件事件.
问题是我使用的是ASP.NET更新面板,在第一次回发后,提示会停止工作,因为更新面板会替换页面内容,但不会重新绑定javascript事件.
在更新面板刷新其内容后,我需要一种方法来执行javascript回调,因此我可以重新绑定javascript事件以使提示再次起作用.
有没有办法做到这一点?
如何从UpdatePanel中的按钮强制完全回发?
我正在开发一个ASP.Net/AJAX控件包项目.80%的时间没有问题.页面应该运行.如果您刷新页面,它有时会显示一个javascript错误"系统未定义".
它不会一直发生,但它是可重复的.当它发生时,用户必须关闭他们的浏览器并重新打开页面.
这让我相信它可能是一个IIS设置.
另一个说明.当我收到错误时,我查看了页面源,何时没有.当页面抛出错误时,缺少以下代码:
<script src="/ScriptResource.axd?d=EAvfjPfYejDh0Z2Zq5zTR_TXqL0DgVcj_h1wz8cst6uXazNiprV1LnAGq3uL8N2vRbpXu46VsAMFGSgpfovx9_cO8tpy2so6Qm_0HXVGg_Y1&t=baeb8cc" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
if (typeof(Sys) === 'undefined') throw new Error('ASP.NET Ajax client-side framework failed to load.');
//]]>
</script>
Run Code Online (Sandbox Code Playgroud) 我正在寻找在ASP.NET MVC中实现模态对话框的最标准方法.
我想要做的一个例子就是当我从"列表"页面中选择一个项目时,我希望"详细信息"页面是列表上的弹出窗口而不是新页面.我不是在寻找黑客.我希望它是一个遵循ASP.NET MVC模式的解决方案.我也不希望不使用jQuery和ASP.NET Ajax(没有插件,除非它作为最佳实践出现).
asp.net-ajax ×10
asp.net ×4
jquery ×4
asp.net-mvc ×3
javascript ×3
json ×3
ajax ×2
updatepanel ×2
.net ×1
asp.net-3.5 ×1
c# ×1
callback ×1
cors ×1
json.net ×1
modal-dialog ×1