小编Tim*_*mes的帖子

如何在C#中访问JSON对象

我通过Web服务收到以下Json:

  {
     report: {
      Id: "aaakkj98898983"
     }
  }
Run Code Online (Sandbox Code Playgroud)

我想获得Id的价值.如何在C#中做到这一点?谢谢

c# json visual-studio

18
推荐指数
1
解决办法
6万
查看次数

将数组作为JSON发布到MVC控制器

我一直在努力寻找这个问题的解决方案.

在我的代码中,我正在构建一个对象数组;

var $marks = [];

var mark = function ( x, y, counter ){
    this.x = x;
    this.y = y;
    this.counter = counter;
}

$marks.push(new mark(1, 2, 0));   
$marks.push(new mark(1, 2, 1));
$marks.push(new mark(1, 2, 2));
Run Code Online (Sandbox Code Playgroud)

现在我想将这些数据发布到MVC控制器,所以我认为控制器中的数据类型将是List<Mark> MarksMarks的数组或数组.

为了发布数据,我试过了;

var json = JSON.stringify($marks);
$.post('url', json).done(function(data){ /* handle */ });
Run Code Online (Sandbox Code Playgroud)

要么

var json = { Marks: $marks };
$.post('url', json).done(function(data){ /* handle */ });
Run Code Online (Sandbox Code Playgroud)

第二种方式,在查看发布的数据时,看起来像这样

Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 0
Marks[0][x]: 1
Marks[0][y]: 2
Marks[0][counter]: 1
Marks[0][x]: …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc json asp.net-mvc-4

16
推荐指数
2
解决办法
2万
查看次数

vb.net对象初始化列表(Of T)

我一直在看一些C#代码:

List<Employee> Employees = new List<Employee>{
    new Employee{firstname="Aamir",lastname="Hasan",age=20},
    new Employee{firstname="awais",lastname="Hasan",age=50},
    new Employee{firstname="Bill",lastname="Hasan",age=70},
    new Employee{firstname="sobia",lastname="khan",age=80},  
    };
Run Code Online (Sandbox Code Playgroud)

现在当我将其转换为vb.net时

Dim Employees as List(Of Employee) = New List(Of Employee)() With { New Employee() With { _  
.firstname = "Aamir", _  
.lastname = "Hasan", _   
.age = 20 _  
}, _  
New Employee() With { _  
.firstname = "awais", _  
.lastname = "Hasan", _  
.age = 50 _  
}, _  
New Employee() With { _  
.firstname = "Bill", _  
.lastname = "Hasan", _  
.age = …
Run Code Online (Sandbox Code Playgroud)

vb.net syntax

15
推荐指数
2
解决办法
2万
查看次数

正确处理浏览器资源

我有一个Web应用程序,可以在很长一段时间内动态加载数据.在数据中有指向图像的链接,然后在浏览器中呈现.

例如

var object = { 
    Name: ko.observable("Foo"), 
    Ref: ko.observable("Bar"), 
    ImageUrl: ko.observable("http://.....")           
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Knockoutjs的模板绑定来渲染屏幕上的数据.

<img data-bind="attr: { src: imageUrl }" />         
Run Code Online (Sandbox Code Playgroud)

因此,每次通过Ajax调用更改对象时,Knockoutjs模板将使用数据重新呈现,并且图像会发生变化.

经过很长一段时间后,这些图像会累积起来,会占用更多内存.现代浏览器似乎应对得更好,但问题主要在于IE8(我们不支持<IE8).即使在现代浏览器中,内存最终会变得如此之高,以至于浏览器会冻结.

有关构建图像资源的示例,请参见此屏幕截图.

在此输入图像描述

我决定看看如果不使用<img />标签会发生什么,请使用<iframe />.

所以我的代码现在看起来像

<iframe data-bind="attr: { src: imageUrl }"></iframe>
Run Code Online (Sandbox Code Playgroud)

现在发生的是框架已创建,但只要imageUrl发生更改,框架就会更新并且不会创建其他资源.

在此输入图像描述

在此输入图像描述

因此,如果我想保持浏览器内存使用率下降,我可以使用这种<iframe />技术,但我不喜欢它.它迫使我对应用程序进行许多其他更改,而且我需要使用iframe!

我现在已经进行了各种测试以查看使用这两种技术消耗了多少内存,并且在相同的时间段内内存将从81,000k增加到200,000k(与<img />)相比,从81,000k增加到98,000k(with <iframe />)

有没有更好的方法来管理浏览器中的图像资源?有没有办法妥善处理这张图片?我在网上搜索了答案,但到目前为止我还没有找到任何答案.

编辑

在最基本的层面.我试图通过jQuery方法删除图像remove(),但永远不会删除图像资源.看到这个小提琴是一个非常基本的例子.http://jsfiddle.net/ezb9e/

码:

HTML

<img src="http://www.fillmurray.com/200/300" />
Run Code Online (Sandbox Code Playgroud)

JS

$(function(){   
    setTimeout(function(){
        $('img').remove();
        $('body').append($('<img />', { attr: { src: 'http://www.fillmurray.com/300/200' }}));
    }, 3000);    
});
Run Code Online (Sandbox Code Playgroud)

javascript browser jquery resources knockout.js

14
推荐指数
1
解决办法
1022
查看次数

关于React.Component的VS17 Resharper抱怨

我在一个使用TypeScript编写React组件的.Net核心Web应用程序上打开了Resharper Ultimate.

所以我有一个简单的组件类;

export class Index extends React.Component<{},{}>{

Resharper警告我

Generic type '_$_$RsRpExt"FromFile;....\node_modules\@types\react\index.d.ts, module=JavaScriptReferencedFilesModule:Referenced external files".React.Component' requires 1 type argument(s), but got 2

我的npm包反应是;

依赖关系:

"react": "^15.6.1",
"react-dom": "^15.6.1",
Run Code Online (Sandbox Code Playgroud)

Dev Dependencies

"@types/react": "^15.0.39",
"@types/react-dom": "^15.5.1",
Run Code Online (Sandbox Code Playgroud)

查看类型化文件,我可以看到React Component应该接收2个参数:

interface Component<P = {}, S = {}> extends ComponentLifecycle<P, S> { }
    class Component<P, S> {
        constructor(props?: P, context?: any);
Run Code Online (Sandbox Code Playgroud)

我正在使用webpack来编译TS/TSX文件,它一切正常,项目正常工作,但如果Resharper不能很好地使用TypeScript代码,那将会很烦人.

有人知道解决这个问题的方法吗?

resharper typescript reactjs tsx visual-studio-2017

8
推荐指数
2
解决办法
1806
查看次数

如何在运行时以编程方式更改asp webapplication主题(而不是页面)?

我正在学习ASP.net,我一直在玩主题和母版页.我决定改变网站的主题,并使用web.config解决方案(将主题添加到web.config).我现在要做的是能够根据用户和用户选择的主题更改主题.

我一直无法找到任何教程,所有这些教程似乎都展示了如何更改单独的内容页面,但我想更改整个网站主题.

你怎么用最简单的方式去做呢?我没有连接到数据库atm.它只是为了练习:)

亲切的问候

c# asp.net themes

5
推荐指数
1
解决办法
4319
查看次数

MVC Html数据属性呈现差异

我遇到了一个非常奇怪的问题,我无法找到原因.

在我的Asp.Net MVC应用程序(.net4.0/MVC4)中,我在一些html元素中重新出现html数据属性,然后在JavaScript中使用.

所以在应用程序中我有一个模型,例如

public class MyModel{
    public bool MyFlag { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我将这个模型传递到一个简单的MVC视图页面,并将布尔值渲染到html数据属性中,例如

@model MyProject.MyModel

<a href="#" data-is-flagged="@Model.MyFlag">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

现在,在本地运行项目时,html呈现为:

<a href="#" data-is-flagged="True">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

但是,当在服务器上运行时,html呈现为:

<a href="#" data-is-flagged="data-is-flagged">Click Me</a>
Run Code Online (Sandbox Code Playgroud)

起初我认为布尔值可能不是以某种方式设置的,所以我将它添加到Click Me @Model.MyFlag呈现为的元素中Click Me True.现在我怀疑这可能与Debug vs Release模式有关,但是在玩这个之后它没有任何区别.

我对此的修复是更改代码以将布尔值输出为字符串值,例如data-is-flagged="@Model.MyFlag.ToString()",然后在本地和服务器上呈现相同的值.

有什么想法是什么原因造成的?

c# asp.net asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
580
查看次数

如何在代码优先中设置身份种子值?

我们将 Code First 与 EF-core 一起使用,我想添加一个列,该列的身份种子从 1 以外的另一个值开始。

目前,我们可以EntityTypeBuilder使用以下方法通过迁移期间将其设置为自动递增:

entityBuilder.Property(e => e.PropertyName).ValueGeneratedOnAdd();
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何更改身份种子。它是否仍然需要像其他版本的 EF 一样进行更新?例如,编写一些自定义 sql 并在迁移期间运行它?

如何首先在实体框架代码中为多个表播种身份种子值

如何首先使用 Entity Framework 4 代码和 SQL Compact 4 在 ID 列上设置标识种子?

在 EF-core 中似乎没有代码SqlServerMigrationSqlGenerator > override Generate(AlterTableOperation alterTableOperation)

c# entity-framework entity-framework-core

5
推荐指数
2
解决办法
3174
查看次数

TypeScript,moment和ReSharper."无法调用类型缺少调用签名的表达式"

我正在使用React + TypeScript + NPM进行包管理,然后使用Webpack进行编译和捆绑.

我正在使用时间进行日期转换和本地化,我使用以下代码处理所有内容;

import * as React from 'react';
import * as moment from 'moment';

class DateFilter extends React.Component<{ value: Date }, {}>{

    render(){
        const { value } = this.props;
        return (
            <time>{ moment(value).format('YYYY-MM-DD') }</time>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

所有工作都按预期工作,但是当Resharper打开时,它会给我一个错误: Cannot invoke an expression whose type lacks a call signature

在此输入图像描述

我已经浏览了各种博文/问题,并且都建议这是导入时刻的正确方法.

我的package.json包含......

"dependencies": {
    "moment": "^2.18.1",
    "moment-timezone": "^0.5.13",
},
"devDependencies": {
    "@types/moment": "^2.13.0",
    "@types/moment-timezone": "^0.2.34",
}
Run Code Online (Sandbox Code Playgroud)

我的tsconfig.json看起来像;

{
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "baseUrl": "Scripts",
    "module": "es2015",
    "moduleResolution": "node", …
Run Code Online (Sandbox Code Playgroud)

resharper momentjs typescript reactjs

5
推荐指数
0
解决办法
332
查看次数

RC更新后的ASP.NET WebAPI XML序列化

在asp.net 4 RC更新之前,我一直在使用WebApi来输出XML.我的模型具有XmlSerialization属性,[XmlElement(ElementName = "the name")]因此我可以使用更友好的名称.

例如

[XmlElement(ElementName = "Branch")]
public string site_nm { get; set; }
Run Code Online (Sandbox Code Playgroud)

在.net 4 RC更新之后,输出的XML忽略了这一点.

我知道WebApi中有些东西已经改变了,比如在返回时使方法返回基于OData协议的值IQueryable<T>,你现在需要添加[Queryable]到你的方法中.

我需要添加一些东西才能使序列化工作吗?我已阅读更改说明,但看​​不到任何内容.

c# asp.net-4.0 asp.net-4.5 asp.net-web-api

3
推荐指数
1
解决办法
1302
查看次数