小编Kar*_*son的帖子

使用JObject动态创建JSON

对于我的一些单元测试,我希望能够构建特定的JSON值(在这种情况下记录专辑),可以用作被测系统的输入.

我有以下代码:

var jsonObject = new JObject();
jsonObject.Add("Date", DateTime.Now);
jsonObject.Add("Album", "Me Against The World");
jsonObject.Add("Year", 1995);
jsonObject.Add("Artist", "2Pac");
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我从来没有真正喜欢"魔术字符串"语法,并希望更接近JavaScript中的expando-property语法,如下所示:

jsonObject.Date = DateTime.Now;
jsonObject.Album = "Me Against The World";
jsonObject.Year = 1995;
jsonObject.Artist = "2Pac";
Run Code Online (Sandbox Code Playgroud)

c# json json.net

78
推荐指数
6
解决办法
10万
查看次数

如何获得observableArray的长度?

我正在尝试创建一系列合约订单项(CLIN),这些订单项将显示为div一般合约信息标题下的单个元素.

我能够使普通的observable工作,但似乎通过视图模型的构造函数传递数组不会创建clins可观察数组的任何部分.

我有一个jsFiddle来说明我的问题.对我来说奇怪的是,data-bind="text: clins.length()HTML span标签上甚至没有返回零,而是什么也没有呈现.

无论如何在jsFiddle中启用调试还是应该看到警告/错误?

knockout.js

45
推荐指数
3
解决办法
5万
查看次数

关闭任何上下文实例的EF更改跟踪

我有一个用于报告的只读数据库的上下文,我正在编写大量代码,如下所示:

using (var context = new ReportingContext())
{
    var reportXQuery = context.ReportX.AsNoTracking();

    // Do stuff here with query...
}
Run Code Online (Sandbox Code Playgroud)

有没有一种方法来设置AsNoTracking一下,让刚new荷兰国际集团了ReportingContext上面会自动使用AsNoTracking,而不是需要记住显式调用它的每一个查询的?

c# entity-framework change-tracking entity-framework-4.1

25
推荐指数
1
解决办法
4万
查看次数

我可以指定在完成等待延续之后我想要保留哪些变量吗?

在一个async方法中,任何局部变量都被存储起来,以便在await有权访问值之后继续任何线程.是否有任何方法可以指出在确定需要哪些值之后await

例如:

var firstName = "Karl";
var lastName = "Anderson";
var street1 = "123 Nowhere Street";
var street2 = "Apt 1-A";
var city = "Beverly Hills";
var state = "California";
var zip = "90210";

await MyTaskHere();

Console.WriteLine(firstName);
Console.WriteLine(city);
Run Code Online (Sandbox Code Playgroud)

所以我已经声明了7个局部变量,但是之后只使用其中的两个await,是否有任何属性我可以用我的变量来装饰,以表明我打算只使用firstNamecityawait完成之后?

注意:这是一个人为的例子,但是如果在下一个线程完成工作时不需要它们,那么能够抑制潜在大数据块的存储似乎是有益的.

c# multithreading async-await c#-5.0

10
推荐指数
1
解决办法
221
查看次数

IHttpActionResult - 怎么用?

我已经看到了使用一些新的IHttpActionResults for OK,NotFound的例子.我还没有看到任何使用Unauthorized().

我现有的代码如下:

catch (SecurityException ex)
{
    request.CreateResponse(HttpStatusCode.Unauthorized, ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

我想用这个替换它:

catch (SecurityException ex)
{
    response = Unauthorized();
}
Run Code Online (Sandbox Code Playgroud)

但我没有看到任何超载传递异常细节.

还有,IHttpActionResult相当于返回500错误?

catch (Exception ex)
{
    response = request.CreateErrorResponse(HttpStatusCode.InternalServerError, 
                                           ex.Message);
}
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-web-api2

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

有没有办法强制async/await继续第一个可用的线程?

关于C#5.0的一个很酷的事情是async/await关键字以及它如何简化你曾经用任务并行库(TPL)编写的管道.

我的问题是,如果你有线程无关的代码并且碰巧在主线程上触发了异步操作(读取:UI线程),但你不一定关心是否在主线程上发生了延续,那么你能否告诉async/await范例你希望它继续在第一个可用的线程上,即使它不是主线程?

我认为能够做到这一点会大大提高某些场景的效率,但不会成为灵丹妙药.

c# multithreading async-await c#-5.0

7
推荐指数
1
解决办法
1814
查看次数

无法使用来自ajax调用的返回列表

我正在尝试获取一个带有对C#方法的AJAX调用的列表,并使用jQuery显示其项目,但我无法做到.这是我得到的:

public string test()
{
    return "test ok";            
}

$.ajax({
    type: "POST",
    url: "Computer/test",
    success: function (data) {
        alert(data);
    },
    error: function () {
        alert("error");
    }
});
Run Code Online (Sandbox Code Playgroud)

这按预期工作,我得到一个'test ok'字符串的警报.但是,如果我尝试返回一个列表,我无法在jquery中遍历它.

public List<string> testList()
{
    List<string> test = new List<string>;
    test.Add("test1");
    test.Add("test2");
    return test;
}

$.ajax({
    type: "POST",
    url: "Computer/testList",
    dataType: "json",
    success: function (data) {
        var list = data.d;
        $.each(list, function (index, item) {
            alert(item);
        });
    },
    error: function (xhr) {
        alert(xhr.responseText);               
    }
});
Run Code Online (Sandbox Code Playgroud)

使用此代码,我收到以下错误:

System.Collections.Generic.List`1 [System.String]

希望你能帮助我,谢谢.

c# ajax asp.net-mvc jquery

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

asp.net渲染折线图

我一直在尝试使用基本的asp.net Chart类渲染折线图.无论我做什么,它总是呈现柱形图.这是我的代码,我将数据表绑定到图表.

var IEtable = (table as System.ComponentModel.IListSource).GetList();

var chart = new Chart(width: 1000, height: 1000)
    .AddSeries(chartType: "Line").AddLegend("Key")
    .AddTitle("Time Series Metric")
    .DataBindCrossTable(IEtable, "Key", "Date", "Value");
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?从现在开始超过12个小时,我一直在用这个东西搞砸了.

asp.net charts line

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

Datagridview未显示在网页中

我正在使用MS Visual Studio 2010(ASP.NET - C#)和MS SQL Server 2005,我正在尝试tblEmployee从我的数据库中检索表中的所有记录EMPLOYEES.在Visual Studio中调试程序时没有错误,但是当localhost网页打开时,datagridview dgvEmployee不存在.也没有检索到的记录.这是我的代码:

SqlConnection sConn;
SqlDataAdapter daEmp;
DataSet dsEmp;

const string sStr = "Server = Server-PC\\SQLEXPRESS; Database = EMPLOYEES; Integrated Security = SSPI";

protected void Page_Load(object sender, EventArgs e)
{
    sConn = new SqlConnection(sStr);
    daEmp = new SqlDataAdapter("SELECT * FROM tblEmployee", sConn);
    dsEmp = new DataSet();

    daEmp.Fill(dsEmp, "tblEmployee");

    dsEmp.Tables["tblEmployee"].PrimaryKey = new DataColumn[] { dsEmp.Tables["tblEmployee"].Columns["EmployeeID"] };

    dgvEmployee.DataSource = dsEmp.Tables["tblEmployee"];
}
Run Code Online (Sandbox Code Playgroud)

这是我的Defaultpage.aspx中的代码:

<asp:GridView ID="dgvEmployee" runat="server">
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

数据库和表名是正确的,表有记录,我正在以管理员身份运行这两个程序.我只是无法弄清楚出了什么问题......这与权限有关吗?

c# sql sql-server asp.net datagridview

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

选择Jquery脚本不能与Asp.net更新面板一起使用?

我在我的应用程序中使用Chosen Jquery下拉列表.不幸的是,当下拉列表位于updatepanel中时,它不起作用.

我知道脚本之间存在一些冲突.但无法追查它.任何帮助表示赞赏.

我的代码是:

<script src="/js/jquery-1.11.2.js" type="text/javascript"></script> 
<link href="../css/chosen.css"  rel="stylesheet" />
<script src="../js/chosen.jquery.js" type="text/javascript"></script>

<asp:UpdatePanel ID="upMain" runat="server">
    <ContentTemplate>
        <asp:DropDownList ID="DropDownList1" 
                          CssClass="form-control chosen" 
                          multiple runat="server">
            <asp:ListItem Text="Select Course" Value="0" 
                          CssClass="form-control" runat="server"/>
            <asp:ListItem Text="core java" Value="1" 
                          CssClass="form-control" runat="server" />                  
            <asp:ListItem Text="C" Value="2" 
                          CssClass="form-control" runat="server" /> 
            <asp:ListItem Text="C++" Value="3" 
                          CssClass="form-control" runat="server" />  
            <asp:ListItem Text="C#" Value="4" 
                          CssClass="form-control" runat="server" />
        </asp:DropDownList>
   </ContentTemplate>
</asp:UpdatePanel>

<script>
    jQuery(document).ready(function mchoose() { 
        jQuery(".chosen").data("placeholder", "Select Frameworks...").chosen();
    });
</script>
Run Code Online (Sandbox Code Playgroud)

javascript c# asp.net jquery jquery-chosen

4
推荐指数
1
解决办法
2277
查看次数