<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标签内,我仍然会收到此错误.
请问有什么线索吗?
我正在开发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) 我有一个长时间运行的SQL语句,我想运行,无论我在连接字符串的"timeout ="子句中放置什么,它似乎总是在30秒后结束.
我只是SqlHelper.ExecuteNonQuery()用来执行它,并让它来处理打开连接等.
是否有其他东西可以覆盖我的超时,或导致SQL服务器忽略它?我在查询上运行了探查器,当我在管理工作室中运行它时,跟踪看起来没什么不同,而不是我的代码.
管理工作室在大约一分钟内完成查询,但即使超时设置为300或30000,我的代码仍会在30秒后超时.
有人能告诉我接口中的SetTimeout(int)方法ICriteria使用的单位是什么吗?
是毫秒,秒,分钟还是其他?
我目前正在C#中编写一个简单的,基于计时器的迷你应用程序,每隔k秒执行n次动作.
我正在尝试采用测试驱动的开发风格,因此我的目标是对应用程序的所有部分进行单元测试.
所以,我的问题是:有没有一种好的方法来对基于计时器的类进行单元测试?
正如我所看到的那样,问题在于,测试执行时需要花费很大的时间,因为他们必须等待这么长时间才能完成所需的操作.
特别是如果想要实际数据(秒),而不是使用框架允许的最小时间分辨率(1毫秒?).
我正在使用模拟对象来执行操作,以记录操作被调用的次数,以便操作几乎没有时间.
我试图在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文件.
最后一行丢失了.
你能帮忙吗?
在我的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) 我正试图从我的网络应用程序运行批处理文件,作为另一个用户.出于某种原因,批处理文件挂起!我可以看到"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); 行应该立即返回,但批处理文件似乎挂起,没有执行.有任何想法吗?
编辑:请参阅下面的答案,了解批处理文件的内容.
我添加了这些行:
psi.RedirectStandardOutput = true;
Process p = Process.Start(psi);
String outp = p.StandardOutput.ReadLine();
Run Code Online (Sandbox Code Playgroud)
并在调试模式下逐步完成它们.代码挂在了ReadLine().我很难过!
最近升级到Visual Studio 2013 Pro并且遇到了一些问题.
主要是如果我在Web窗体的.aspx页面或MVC的.cshtml中更改任何HTML或CSS,那么更改并不总是反映在我调试它时正在处理的页面上,并且看起来并不重要我刷新或清除缓存的时间.
我正在使用web essentials,它应该将更改直接放在页面上,必须刷新页面,但这似乎也不起作用.
偶尔,但并非总是如此,如果我停止调试,更改后面的代码,然后再次运行项目,它说它运行的代码不同于正在调试的代码,我必须停止它,重建然后调试.
在以前版本的Visual Studio中从未遇到过这些问题.
有什么建议?
我正在写的应用程序总是在客户端计算机上崩溃,但我没有得到异常描述或堆栈跟踪.
我唯一得到的是Windows希望发送给Microsoft的崩溃报告.
我想获取转储文件并自己调查,但我找不到它.
当我"查看错误报告的内容"时,我可以看到不同的内存转储,但我无法复制或保存它.
c# ×8
.net ×3
asp.net ×3
angularjs ×1
crash ×1
csvhelper ×1
database ×1
json ×1
memory-dump ×1
nhibernate ×1
owin ×1
signalr ×1
sql-server ×1
timeout ×1
timer ×1
unit-testing ×1