小编csh*_*aml的帖子

即使GridView在表单标记内,GridView也必须放在带有runat ="server"的表单标记内

<form runat="server" id="f1">
    <div runat="server" id="d">
        grid view:
        <asp:GridView runat="server" ID="g">
        </asp:GridView>
    </div>

    <asp:TextBox runat="server" ID="t" TextMode="MultiLine" Rows="20" Columns="50"></asp:TextBox>
</form>
Run Code Online (Sandbox Code Playgroud)

代码背后:

public partial class ScriptTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        g.DataSource = new string[] { "a", "b", "c" };
        g.DataBind();

        TextWriter tw = new StringWriter();
        HtmlTextWriter h = new HtmlTextWriter(tw);    
        d.RenderControl(h);
        t.Text = tw.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

即使GridView在runat ="server"的from标签内,我仍然会收到此错误.

请问有什么线索吗?

.net c# asp.net

84
推荐指数
3
解决办法
19万
查看次数

Web API/OWIN,SignalR和授权

我正在开发AngularJS,Web API,SignalR应用程序的原型,作为VS 2013中新项目的潜在起点.

在这个阶段,我几乎使用visual studio为个人用户帐户生成的预制代码.

StartUp.Auth.cs代码中有一行看起来像这样.

app.UseOAuthBearerTokens(OAuthOptions);
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以将[Authorize]属性添加到控制器,它工作正常.

顺便说一句,使用angular我可以在JavaScript中添加包含令牌的标准头,如下所示.

$http.defaults.headers.common.Authorization = 'bearer ' + access_token;
Run Code Online (Sandbox Code Playgroud)

然后我将SignalR添加到项目中.
它支持自己的[Authorize]属性版本,但在使用SignalR时无法传递自定义标头.
这是浏览器方面的限制.
文档说您可以将令牌作为查询字符串的一部分传递.
我在JavaScript方面添加了该代码.我的SignalR代码现在包含了这个.
我将令牌传递为'bearer_token'.

this.connection = $.hubConnection("/TestHub", { useDefaultPath: false, qs: "bearer_token=" + token });
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何使OWIN识别令牌现在它不再在标题中.
经过多次搜索后,我最终添加了将令牌从查询字符串移动到标题中的代码.
对于我的原型,我刚刚在StartUp.Auth.cs的原始行上面添加了一些代码.

所以,现在它看起来像这样:

app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()
{
    Provider = new OAuthBearerAuthenticationProvider()
    {
        OnRequestToken = context =>
        {
            if (context.Request.Path.Value.StartsWith("/TestHub"))
            {
                string bearerToken = context.Request.Query.Get("bearer_token");
                if (bearerToken != null)
                {
                    string[] authorization = new string[] { "bearer " + bearerToken };
                    context.Request.Headers.Add("Authorization", authorization);
                }
            }

            return Task.FromResult(context);
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# asp.net signalr angularjs owin

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

连接字符串中没有超时的超时

我有一个长时间运行的SQL语句,我想运行,无论我在连接字符串的"timeout ="子句中放置什么,它似乎总是在30秒后结束.

我只是SqlHelper.ExecuteNonQuery()用来执行它,并让它来处理打开连接等.

是否有其他东西可以覆盖我的超时,或导致SQL服务器忽略它?我在查询上运行了探查器,当我在管理工作室中运行它时,跟踪看起来没什么不同,而不是我的代码.

管理工作室在大约一分钟内完成查询,但即使超时设置为300或30000,我的代码仍会在30秒后超时.

database sql-server timeout

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

ICriteria上的NHibernate SetTimeout

有人能告诉我接口中的SetTimeout(int)方法ICriteria使用的单位是什么吗?
是毫秒,秒,分钟还是其他?

nhibernate

23
推荐指数
2
解决办法
8528
查看次数

单元测试基于计时器的应用?

我目前正在C#中编写一个简单的,基于计时器的迷你应用程序,每隔k秒执行n次动作.
我正在尝试采用测试驱动的开发风格,因此我的目标是对应用程序的所有部分进行单元测试.

所以,我的问题是:有没有一种好的方法来对基于计时器的类进行单元测试?

正如我所看到的那样,问题在于,测试执行时需要花费很大的时间,因为他们必须等待这么长时间才能完成所需的操作.
特别是如果想要实际数据(秒),而不是使用框架允许的最小时间分辨率(1毫秒?).
我正在使用模拟对象来执行操作,以记录操作被调用的次数,以便操作几乎没有时间.

.net c# unit-testing timer

19
推荐指数
2
解决办法
6732
查看次数

使用C#中的CsvHelper写入文件

我试图在C#中使用CsvHelper写入CSV文件.
这是图书馆http://joshclose.github.io/CsvHelper/的链接

我在网站上使用了代码.

这是我的代码:

var csv = new CsvWriter(writer);
csv.Configuration.Encoding = Encoding.UTF8;
foreach (var value in valuess)
{
    csv.WriteRecord(value);
}
Run Code Online (Sandbox Code Playgroud)

它只将一部分数据写入csv文件.
最后一行丢失了.
你能帮忙吗?

c# csvhelper

18
推荐指数
3
解决办法
4万
查看次数

在JSON中获得400 webservice状态时返回false

在我的codebehind文件中,我调用此函数:

private void loginAction(object sender, TappedRoutedEventArgs e)
{
    Webservice webservice = new Webservice();
    webservice.getUser(txtLogin.Text, txtPass.Text);
}
Run Code Online (Sandbox Code Playgroud)

然后在webservice中我这样做:

public void getUser(String user, String password)
{
    String strUrl = String.Format("http://*******/nl/webservice/abc123/members/login?email={0}&password={1}",user,password);

    startWebRequest(strUrl, loginCallback);
}

private async void loginCallback(IAsyncResult asyncResult)
{
    try
    {
        ReceiveContext received = GetReceiveContextFromAsyncResult(asyncResult, "User");

        if (received != null && received.Status == 200)
        {
            await UserDataSource.AddUser(received.Data);
        }
        else
        {

            throw new Exception("failedddd");
        }
    }
    catch (Exception e)
    {

    }   
}
Run Code Online (Sandbox Code Playgroud)

我现在要做的是抛出异常时,显示一个消息框.当我获得状态200时,我导航到de code后面的下一页文件.

我现在的问题是,我如何在我的代码隐藏文件中知道这一点?

提前谢谢了!

编辑 我也有这些帮助方法:

#region HELPERS
private void startWebRequest(string …
Run Code Online (Sandbox Code Playgroud)

c# json windows-phone windows-phone-8.1

17
推荐指数
1
解决办法
582
查看次数

C#.Net:为什么我的Process.Start()挂起了?

我正试图从我的网络应用程序运行批处理文件,作为另一个用户.出于某种原因,批处理文件挂起!我可以看到"cmd.exe"在任务管理器中运行,但它只是永远坐在那里,无法被杀死,批处理文件没有运行.这是我的代码:

SecureString password = new SecureString();
foreach (char c in "mypassword".ToCharArray())
    password.AppendChar(c);

ProcessStartInfo psi = new ProcessStartInfo();
psi.WorkingDirectory = @"c:\build";
psi.FileName = Environment.SystemDirectory + @"\cmd.exe";
psi.Arguments = "/q /c build.cmd";
psi.UseShellExecute = false;
psi.UserName = "builder";
psi.Password = password;
Process.Start(psi);
Run Code Online (Sandbox Code Playgroud)

如果您没有猜到,此批处理文件将构建我的应用程序(与执行此命令的应用程序不同的应用程序).

Process.Start(psi); 行应该立即返回,但批处理文件似乎挂起,没有执行.有任何想法吗?

编辑:请参阅下面的答案,了解批处理文件的内容.

  • output.txt永远不会被创建.

我添加了这些行:

psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
String outp = p.StandardOutput.ReadLine();
Run Code Online (Sandbox Code Playgroud)

并在调试模式下逐步完成它们.代码挂在了ReadLine().我很难过!

.net c#

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

Visual Studio 2013,更改未在调试中显示

最近升级到Visual Studio 2013 Pro并且遇到了一些问题.

主要是如果我在Web窗体的.aspx页面或MVC的.cshtml中更改任何HTML或CSS,那么更改并不总是反映在我调试它时正在处理的页面上,并且看起来并不重要我刷新或清除缓存的时间.
我正在使用web essentials,它应该将更改直接放在页面上,必须刷新页面,但这似乎也不起作用.

偶尔,但并非总是如此,如果我停止调试,更改后面的代码,然后再次运行项目,它说它运行的代码不同于正在调试的代码,我必须停止它,重建然后调试.

在以前版本的Visual Studio中从未遇到过这些问题.

有什么建议?

c# asp.net visual-studio visual-studio-2013

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

查找C#应用程序的故障转储文件

我正在写的应用程序总是在客户端计算机上崩溃,但我没有得到异常描述或堆栈跟踪.
我唯一得到的是Windows希望发送给Microsoft的崩溃报告.
我想获取转储文件并自己调查,但我找不到它.

当我"查看错误报告的内容"时,我可以看到不同的内存转储,但我无法复制或保存它.

c# crash memory-dump

12
推荐指数
2
解决办法
8160
查看次数