如何防止由于浏览器中的页面重新加载而第二次发布的表单再次使用C#Asp.Net添加到我的数据库中.
谢谢,史蒂文
在Visual Studio 2005中,我有一个通过Project Dependencies对话框指定显式依赖项的解决方案.
例如,当我通过devenv/rebuild Release构建时,项目的构建顺序与加载IDE时的顺序不同.这是我指定的依赖项不允许的顺序.
在某些情况下,devenv崩溃:(
日志在显示订单的每一行之前显示一个数字,我认为这是依赖性引发的顺序:
11> MyExeProject - 1个错误,0个警告
但是,构建似乎以该顺序启动,中断并以另一个顺序继续 - 这不起作用.所以8可以在11之前完成它的构建.如果11中的11个链接,则存在问题.
类似的重新排序在IDE中发生,但构建顺序仍然保持完整性.
需要通过命令行构建,任何想法为什么这是或原因是什么?
在我的模拟类中,我正在模拟方法foo().对于某些测试用例,我希望foo()的模拟实现返回一个特殊值.对于其他测试用例,我想使用foo()的实际实现.我在我的mock类中定义了一个布尔值,以便我可以在mock方法中确定是否要返回特殊值,或者使用"real"方法.问题是,我似乎无法弄清楚如何从模拟方法调用真正的方法.
我发现你可以在名为"it"的模拟对象中定义一个特殊成员(具有被模拟对象的类型).这允许您从模拟实现中引用真实类.所以,我的计划是,如果我需要调用foo()的"真正"实现,mock方法将调用it.foo().但是,这不起作用,因为调用it.foo()只是再次调用模拟版本,而不是真实版本,所以我最终得到无限递归.
有没有办法使这项工作?
编辑:使用代码示例可能更清楚,这是我当前的模拟方法实现的样子:
private RealClass it;
...
public SomeClass foo() {
if(fakeIt) {
return new SomeClass("fakevalue");
} else {
// doesn't work, just keeps calling the mock foo
// in infinite recursion
return it.foo();
}
}
Run Code Online (Sandbox Code Playgroud)
编辑2:此外,对于我的大多数测试用例,我不想要模拟实现.所以我最初的尝试是在我需要模拟对象的那些测试用例中只调用Mockit.redefineMethods().但这不起作用 - 似乎你只能在setup/teardown中做到这一点......当我尝试时,我的模拟实现从未被调用过.
解决方案说明:
起初我并不认为给出的答案有效,但在使用它之后,似乎问题在于我将JMockit"核心"方法与"注释"驱动方法混合在一起.显然,在使用注释时,您需要使用Mockit.setupMocks,而不是Mockit.redefineMethods().这是最终奏效的:
@Before
public void setUp() throws Exception
{
Mockit.setUpMocks(MyMockClass.class);
}
Run Code Online (Sandbox Code Playgroud)
然后,对于模拟类:
@MockClass(realClass = RealClass.class)
public static class MyMockClass {
private static boolean fakeIt = false;
private RealClass it;
@Mock(reentrant = true)
public SomeClass foo() {
if(fakeIt) { …Run Code Online (Sandbox Code Playgroud) 来自我的另一个问题,我学会了不在循环中使用数据库查询,因此我必须学习如何在循环之前以方便的方式获取所有数据.
假设我有两个表'scale'和'items'.项目中的每个项目都属于一个比例尺,并与外键(scaleID)链接.我想在一个查询中将所有数据提取到数组结构中,这样第一个维度就是包含所有列并嵌套在其中的所有比例,所有项目都是一个比例所有列.
结果将是这样的:
scale 1, scaleParam1, scaleParam2, ...
....item1, itemParam1, itemParam2, ...
....item2, itemParam1, itemParam2, ...
scale 2, scaleParam2, scaleParam2, ...
....item1, itemParam1, itemParam2, ...
....item2, itemParam1, itemParam2, ...
Run Code Online (Sandbox Code Playgroud)
到目前为止,我主要做了一对一关系的左连接.这是一对多的,我无法绕过它.
它是一个正确的连接,是否也可以使用子查询完成,如何将完整的外部行放入其中...
后来我想用嵌套的foreach循环遍历它.
也许只是我头疼...
我想在我的网页上添加一个ajax:TabContainer.我没有得到任何构建错误,但是当我尝试浏览到该页面时,它给出了错误:"控件集合无法修改,因为控件包含代码块(即<%...%>)." .
我重新下载了样本站点的Ajax Control Toolkit,在VS中打开了解决方案,为TabContainer运行了样本,并且运行正常.我认为它可能是Ajax Control Toolkit的另一个版本 - 但没有.这两个站点引用的AjaxControlToolkit.dll文件是相同的.为什么我不能让TabContainer在我的网站上运行?
还有一个问题,但我不知道它是否相关.我刚刚安装了Visual Studio 2008.一旦我打开我的网站,VS就会自动在工具箱中创建"AJAX Controls"选项卡,并用所有ajax控件填充它.在源代码中,所有控件都以"ajax"为前缀 - 即"<ajax:TabContainer runat ="server"...>".
但是,当我打开示例网站时,Visual studio在工具箱中创建了另一个选项卡 - "AjaxControlToolkit Components",其中包含与"AJAX Controls"中相同的所有控件.我不知道为什么它两次添加相同的控件(但奇怪的是,在工具箱中有不同的图标).在源代码中,所有控件都以"ajaxToolkit"为前缀 - 即"<ajaxToolkit:TabContainer runat ="server"...>".这里发生了什么?我只是希望在我的网站上使用强制TabContainer.
我有一个项目,它需要访问ASP.NET中的大量专有数据.这是通过在共享内存中加载数据在Linux/PHP上完成的.我想知道是否尝试使用内存映射文件是可行的方法,或者是否有更好的方法可以提供更好的.NET支持.我在考虑使用数据缓存但不确定缓存中保存的数据大小的所有缺陷.
我正在尝试查找服务器上文件的文件大小。我从这个人那里得到的以下代码可为您自己的服务器完成此操作:
string MyFile = "~/photos/mymug.gif";
FileInfo finfo = new FileInfo(Server.MapPath(MyFile));
long FileInBytes = finfo.Length;
long FileInKB = finfo.Length / 1024;
Response.Write("File Size: " + FileInBytes.ToString() +
" bytes (" + FileInKB.ToString() + " KB)");
Run Code Online (Sandbox Code Playgroud)
有用。但是,我想查找例如的文件大小:
string MyFile = "http://www.google.com/intl/en_ALL/images/logo.gif";
FileInfo finfo = new FileInfo(MyFile);
Run Code Online (Sandbox Code Playgroud)
然后我得到一个讨厌的错误说 URI formats are not supported.
如何使用ASP.NET查找Google徽标的文件大小?
采用HTML并将其转换为PDF的最佳和最简单的方法是什么,类似于在ColdFusion上使用CFDOCUMENT?
更新:我非常感谢人们迄今给出的所有意见和建议,但我觉得人们遗漏了他们的答案.
1)解决方案必须是免费的或开源的.一个人建议使用pricexml和另一个pd4ml.这两种解决方案都需要花钱(价格是花费一条腿和一条腿),这不是关于岔路口的问题.
2)他们必须能够接受html(从文件,url或字符串变量),然后生成pdf.像prawn,rprf,rtex这样的库是使用自己的方法生成的,而不是使用html.
请不要认为我对这些建议不感恩,只是对于像我这样使用ColdFusion但想转换为Rails的人来说,pdf生成似乎是一个真正的问题.
我正在我的应用程序中输入一个200mb的文件,由于一个非常奇怪的原因,我的应用程序的内存使用量超过600mb.我尝试过vector和deque,以及std :: string和char*但没有用.我需要我的应用程序的内存使用与我正在阅读的文件几乎相同,任何建议都将非常有用.是否有导致如此多内存消耗的错误?你能指出问题还是重写整个问题?
Windows Vista SP1 x64,Microsoft Visual Studio 2008 SP1,32位版本,Intel CPU
整个申请到现在为止:
#include <string>
#include <vector>
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <iterator>
#include <algorithm>
#include <time.h>
static unsigned int getFileSize (const char *filename)
{
std::ifstream fs;
fs.open (filename, std::ios::binary);
fs.seekg(0, std::ios::beg);
const std::ios::pos_type start_pos = fs.tellg();
fs.seekg(0, std::ios::end);
const std::ios::pos_type end_pos = fs.tellg();
const unsigned int ret_filesize (static_cast<unsigned int>(end_pos - start_pos));
fs.close();
return ret_filesize;
}
void str2Vec (std::string &str, std::vector<std::string> &vec)
{
int newlineLastIndex(0);
for …Run Code Online (Sandbox Code Playgroud) 我的一个列类型是DateTime(注册日期).我无法创建过滤所有数据的查询,例如.所有在22/10/2008 18:00至20:00之间注册的注册.
谢谢
asp.net ×3
c# ×3
.net ×1
c++ ×1
datetime ×1
java ×1
jmockit ×1
join ×1
memory ×1
memory-leaks ×1
mocking ×1
mysql ×1
one-to-many ×1
pdf ×1
php ×1
sql-server ×1
stl ×1
subquery ×1
visual-c++ ×1
windows ×1