我试图让Json.Net序列化一个没有引号的属性名称,并且发现很难在Google上找到文档.我怎样才能做到这一点?
它只是大型Json渲染的一小部分,所以我更喜欢添加属性属性,或者覆盖类的序列化方法.
目前,它呈现如下:
"event_modal":
{
"href":"file.html",
"type":"full"
}
Run Code Online (Sandbox Code Playgroud)
而且我希望让它呈现如下:( href并且type没有引号)
"event_modal":
{
href:"file.html",
type:"full"
}
Run Code Online (Sandbox Code Playgroud)
来自班级:
public class ModalOptions
{
public object href { get; set; }
public object type { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 如何在MVC项目中使用Json.Net返回未转义的Json?
到目前为止,我序列化了一个基本对象,并让Json.Net对其进行序列化:
public JsonResult GetTimelineJson()
{
var result = new MyGraph([some data...]);
return Json(JsonConvert.SerializeObject(result), JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
结果:
"{\r\n \"id\": \"myGraph\",\r\n \"title\": \"Graph title\",\r\n [...]
Run Code Online (Sandbox Code Playgroud)
任何将它包装成HtmlString等的尝试都会导致在线上传递一个空集(尽管调试点显示它正确地未转义).我已经检查过HTTP标头中是否正确设置了内容类型.
我有一个Web API应用程序,我知道OAuth将是API的标准安全模型,其中Authentication Server将负责生成授权令牌,以便用户可以发送到我们的服务器并使用服务.
我对此很新,但我理解所涉及的角色:
但OAuth究竟在实践中是什么,而不是理论上的?它是一个.NET库吗?这是一家由独立公司提供的服务吗?这是我可以在我的本地开发机器上配置的东西,看看它是如何工作的?
如何开始使用OAuth来保护Web API应用程序?
我正在尝试将现有的SQL NText列更改为nvcharmax(max),并在大小限制上遇到错误.我相信,有大量的现有数据,其中一些数据超过了8k的限制.
我们希望转换它,以便在LINQ中搜索该字段.
我尝试过的2x SQL语句是:
update Table
set dataNVarChar = convert(nvarchar(max), dataNtext)
where dataNtext is not null
update Table
set dataNVarChar = cast(dataNtext as nvarchar(max))
where dataNtext is not null
Run Code Online (Sandbox Code Playgroud)
而我得到的错误是:
Cannot create a row of size 8086 which is greater than the allowable maximum row size of 8060.
Run Code Online (Sandbox Code Playgroud)
这是使用SQL Server 2008.
任何帮助表示感谢,谢谢.
下面标记的答案是正确的,SQL 2008可以在我的情况下将列更改为正确的数据类型,并且我们在其上使用的LINQ利用应用程序没有戏剧性:
alter table [TBL] alter column [COL] nvarchar(max)
Run Code Online (Sandbox Code Playgroud)
我也被建议跟进:
update [TBL] set [COL] = [COL]
Run Code Online (Sandbox Code Playgroud)
通过将数据从lob结构移动到表(如果长度小于8k)来完成转换,从而提高性能/保持正常.
我发现只要次要路线开放,它router.isActive就会返回false.
是router.isActive适用于检查"是我的路线(X)?" (例如:付款页面) - 无论是hashstates,查询参数和辅助路由.
应该router.isActive是正确的服务/电话来推断这个?或者它是为了更简单的事情.还有其他选择吗?应该写我自己的服务?
例如:
/second,router.isActive('second', true)=== true
second(modal:my-modal),router.isActive('second', true)=== false
/second,router.isActive('', false)=== true.(非完全匹配返回真正的父/子状态我已经创建了一个plnkr概念证明,以便于测试:
我试图找出如何使用ASP.NET WebApi指定备用属性名称 - 并使其适用于反序列化+序列化以及JSON + XML.到目前为止,我只发现了部分解决方案.
我希望将属性名称公开为带有下划线的小写,并且(例如)为了具有不同的内部名称:
外部:
内部:
对于测试,这是一个POST控制器动作,只是传递它接收的内容:
// POST api/values
public TestSerialization Post([FromBody]TestSerialization value)
{
return value;
}
Run Code Online (Sandbox Code Playgroud)
还有一个测试实体:
public class TestSerialization
{
[DataMember(Name = "field_one")] // Doesn't appear to change anything
public string ItemOne { get; set; }
[JsonProperty(PropertyName = "field_two")] // Only works for serialization in JSON mode
public string ItemTwo { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现:
对于测试数据,我提交了4个属性,以查看反序列化的值,以及反序列化时的属性名称
我怎样才能做到这一点?
我如何使用string.Format在正则表达式中输入一个值,其中正则表达式中已经有大括号来定义重复限制?(我的思维是因为语法碰撞而混浊)
例如,正常的正则表达式是" ^\d {0,2} ",我希望从属性MaxLength中插入'2'
谢谢.
我正在处理的ASP.NET Web应用程序项目随着时间的推移而变得越来越慢(在IIS或.NET开发服务器中).目前需要:
该机器速度相当快 - 一台Core 2 Quad 2.40ghz,8 gig o'RAM,在HyperV下运行dev机器,分配给dev VM的2 gig o RAM.
有没有办法跟踪/报告初始负载的整个周期?如果我能看到基本的IIS工作进程启动需要多长时间,加载DLL,运行实际的.NET代码,那就太好了.
我知道我可以在代码上使用分析器 - 它没有发现任何超慢的DB连接建立时间,但我想在处理实际页面之前对这些东西的性能有一些了解.在整个过程中我可以看到CPU监视器有点达到100%,RAM使用量略有增加 - 但我正在寻找更好的洞察力,希望能有所改善.
虽然我没有在项目开始时(4个月前)进行任何测量,但我完全确定重装是一个相对轻而易举的事.
任何帮助都非常感激,程序员 - 他们只能喝 - 这么多咖啡,而建立 - 发生.
JetBrain的dotTrace非常出色(对于这个例子),谢谢.它具有启动Web项目的完美界面,并且很快突出显示大部分时间都在Application_Start()中(在Global.asax中).
其他选项不会选择这个,因为:
该跟踪选项只能从PreInit开始,缺少的Application_Start()调用.
该秒表电话会要求我知道去哪里找,或恢复到printf风格调试的美好时光...
nprof想要定位一个.exe,它会在尝试连接到新的w3wp.exe实例时错过目标区域...
MomentJS是否用于用户输入解析?
我已经适应了简单的案例,让它接受DDMMYYYY订单中的日期,并处理一些变化.
在指定格式时,它无法特别好地处理无效日期 - 包括将日值设置得过高,或将年份值切换为2到4位之间.
年份解释的例子:
var date1 = moment('30082012', 'DDMMYYYY');
var date2 = moment('30082012', 'DDMMYY'); // Gives wrong year - 2020
var date3 = moment('300812', 'DDMMYYYY'); // Gives wrong year - 1900
var date4 = moment('300812', 'DDMMYY');
Run Code Online (Sandbox Code Playgroud)
希望无效日期的例子:
var date5 = moment('08302012', 'DDMMYYYY'); // Gives Jun 08 2014
var date6 = moment('08302012', 'DDMMYY'); // Gives Jun 08 2022
var date7 = moment('083012', 'DDMMYYYY'); // Gives Jun 08 1902
var date8 = moment('083012', 'DDMMYY'); // Jun 08 2014
Run Code Online (Sandbox Code Playgroud)
我用这些例子创建了一个JS小提琴:http …
我正在构建一个应用程序,并希望显示一个2层菜单,两个层都始终可用.Durandal 2.0 推出了新的路由器,它支持"子路由器",可以更容易地进行深度链接.
我的问题 - 我可以永久加载我的'子级'导航路径(以及父级未处于活动状态时呈现的子菜单),或者是"子路由器"设计旨在延迟加载它们以在深层链接到达时评估它们被评估?
Durandal示例显示主导航寄存器是一个splat路由,然后当加载/激活该视图模型时,子路由器被注册.
例如:在Durandal 2.0提供的示例中,mian nev已注册 shell.js
router.map([
{ route: ['', 'home'], moduleId: 'hello/index', title: 'Validation test', nav: true },
{ route: 'knockout-samples*details', moduleId: 'ko/index', title: 'Knockout Samples', nav: true, hash: '#knockout-samples' }
]).buildNavigationModel()
.activate();
Run Code Online (Sandbox Code Playgroud)
然后ko/index.js视图模型注册孩子(上activate())
var childRouter = router.createChildRouter()
.makeRelative({
moduleId:'ko',
fromParent:true
}).map([
{ route: '', moduleId: 'helloWorld/index', title: 'Hello World', type: 'intro' },
{ route: 'helloWorld', moduleId: 'helloWorld/index', title: 'Hello World', type: 'intro', nav: true},
{ …Run Code Online (Sandbox Code Playgroud)