这是我在VS2010中遇到的烦人的问题,无论如何我可以扩展和收缩条件语句和循环,就好像它们是方法一样?我意识到答案可能是我应该将它们重构为方法,如果我达到这一点,但无论如何都要幽默我.我以为我曾经能做到这一点.
编辑,一个例子:
public void DoSomething()
{
if (1 < 2) {
// long statement here
}
}
Run Code Online (Sandbox Code Playgroud)
在VS2010的左边,我可以收缩"DoSomething"......然而,我不能签约if/then声明.
我遇到了一个让我发疯的问题.在我的应用程序(ASP.NET MVC2 /.NET4)中,我只是运行这个:
DateTime.Now.ToShortTimeString()
Run Code Online (Sandbox Code Playgroud)
我见过的所有例子都表明我应该得到类似的东西:12:32 PM但是我12:32没有AM/PM.
我启动了LinqPad 4,看看我是否可以复制它.相反,它12:32 PM正确返回.
我勒个去?
我正在使用jQueryUI和jQuery-tmpl,但我相信我正在寻找的建议足够广泛,它适用于任何类型的模板库.
我遇到的问题是我的模板中经常会有某种CRUD小部件
<script id="some-widget-template">
<div class="some-widget">
<input name="NameField"/>
<button id="some-widget-save">Save</button>
</div>
</script>
Run Code Online (Sandbox Code Playgroud)
这让我有一个非常易读的小部件,我可以回去编辑,等等.除了它是丑陋的.使用jQueryUI我可以使按钮非常漂亮,但它需要一些Javascript.所以在我相应的Javascript控制器中,我的代码将如下所示:
$("#some-widget-template")
.render( arrayOfDataObjects )
.appendTo("body");
$("#some-widget-save").button();
Run Code Online (Sandbox Code Playgroud)
对于这个非常简单的例子,这很好用.然而,我的控制器将很快变得混乱,需要转换的元素越多.它也感觉这应该是视图/模板引擎的关注点,更不用说具有降低代码可维护性的魔术字符串("#some-widget-save").
最好的方法是什么?当然,我不能成为第一个遇到这个问题的人.我一起攻击jquery-tmpl,这样在返回一个jQuery对象之前,它会扫描一个按钮元素,如果它遇到它,就把它转换成一个合适的按钮元素.这似乎很慢,因为它必须遍历模板中的每个元素.有任何想法吗?
编辑:我发现在使用CSS3时,90%的问题都被消除了.在为非CSS3兼容的浏览器构建时,我使用了工厂方法.
我有几个控制器,我希望每个ActionResult返回相同的viewdata.在这种情况下,我知道我将始终需要基本的产品和员工信息.
现在我一直在做这样的事情:
public ActionResult ProductBacklog(int id) {
PopulateGlobalData(id);
// do some other things
return View(StrongViewModel);
}
Run Code Online (Sandbox Code Playgroud)
其中PopulateGlobalData()定义为:
public void PopulateGlobalData(int id) {
ViewData["employeeName"] = employeeRepo.Find(Thread.CurrentPrincipal.Identity.Name).First().FullName;
ViewData["productName"] = productRepo.Find(id).First().Name;
}
Run Code Online (Sandbox Code Playgroud)
这只是伪代码,所以原谅任何明显的错误,有没有更好的方法来做到这一点?我想让我的控制器继承一个几乎与你在这里看到的相同的类,但我没有看到任何巨大的优势.感觉就像我正在做的事情是错误的和无法维持的,最好的方法是什么?
Robocopy将以高于0的代码退出,但仍可能不是失败.PSake检测到0以上的任何内容为失败并且无法构建.这很好,但是为什么这仍然失败:
task Deploy {
robocopy $source $dest /NP /S /XO /NFL /NDL /NJH /NJS | Out-Default
if ($lastexitcode -eq 3)
{
Write-Host "Got Here"
$lastexitcode = 0
}
Write-Host "Deploy local complete"
Write-Host $lastexitcode
}
TaskTearDown {
if ($LastExitCode -ne 0) {
write-host "Build failed"
exit 1
}
}
Run Code Online (Sandbox Code Playgroud)
我可以验证Deploy if语句是否被命中,Write-Host输出0正确,但TaskTearDown仍然检测到最后一个退出代码为3!我该如何解决?
我有一个站点URL列表,
/node1/node1/sub-node1/node2/node2/sub-node1这个列表是以随机顺序给我的,我需要订购它,所以顶级是第一个,然后是子级别等等(因为我不能创建/node2/sub-node1没有/node2现有的).有干净的方法吗?
现在我只是做一个递归调用,说我不能创建sub-node1因为node2存在,创建node2.我希望列表的顺序决定创建并摆脱我的递归调用.
我相信我正在复制Todo教程几行,我收到此错误:
错误:Reducer"addReport"在初始化期间返回undefined.如果传递给reducer的状态未定义,则必须显式返回初始状态.初始状态可能不是未定义的.
这是我的addReport reducer:
const addReport = (state = [], action) =>
{
console.log(state)
switch (action.type) {
case ADD_NEW_REPORT:
return [...state,
addReports(undefined, action)
]
}
}
Run Code Online (Sandbox Code Playgroud)
我添加了logging语句,可以验证它是否返回一个空数组.即使将状态设置为1也会产生相同的结果.我错过了什么?
如果我在这里使用错误的术语,我很抱歉.我仍然非常喜欢ORM世界,但我一直在玩MongoDb并且非常喜欢我所看到的.我不喜欢的一件事是这样的:
var books = bookRepository.GetCollection<BsonDocument>("books");
Run Code Online (Sandbox Code Playgroud)
和
foreach (var book in books.FindAllAs<Book>())
{
Console.WriteLine("Author: {0}, Title: {1}", book.Author, book.Title);
}
Run Code Online (Sandbox Code Playgroud)
我在会话中找到了几个关于包装NoRM的教程,但我无法弄清楚如何使用CSharp驱动程序(Mongodb推荐/在其github页面上使用的那些).
对于第一个例子,我真正想做的是这样的事情:
var bookRepository = MongoRepository<Book>(); // probably should use IoC to resolve this
Run Code Online (Sandbox Code Playgroud)
和
foreach (var book in books.FindAll())
Run Code Online (Sandbox Code Playgroud)
瞧!我可能不是第一个想要这个的人,到处使用字符串看起来有点疯狂,不过我会认为教程只是一个例子.是否有"最佳实践"示例以这种方式设置这一切?
编辑:如果这是疯狂的谈话而不是如何在Mongo做事,请告诉我,这是我的第一个测试项目.
我是EB和AWS的新手,我的docker图像构建正常,但无法在Elastic Beanstalk上运行.我怀疑他们没有正确连接到数据库,但是,当我从命令行运行"eb logs"时,我没有得到任何有用的东西.以下是错误:
{
"status": "FAILURE",
"api_version": "1.0",
"results": [
{
"status": "FAILURE",
"msg": "(TRUNCATED)...rrun.aws.json: No such file or directory
73927c49adff622a1a229d9369bdd80674d96d20f3eb99a9cdea786f4411a368
Docker container quit unexpectedly after launch: Docker container quit unexpectedly on Wed May 20 17:15:02 UTC 2015:.
Check snapshot logs for details.
Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/04run.sh failed.
For more detail, check /var/log/eb-activity.log using console or EB CLI",
"returncode": 1,
"events": [
{
"msg": "Successfully pulled node:0.12.2-slim",
"severity": "TRACE",
"timestamp": 1432142064
},
{
"msg": "Successfully built aws_beanstalk/staging-app",
"severity": "TRACE",
"timestamp": 1432142094
}, …Run Code Online (Sandbox Code Playgroud) 我对这些问题有类似的问题:
NHibernate 2.*映射文件:如何定义可空的DateTime类型(DateTime?)?
NHibernate不会持久化DateTime SqlDateTime溢出
我正在使用NHibernate 2.1.2和FluentNhibernate 1.0.0.636.使用NHibernate 2.x DateTime?可以修复可以为空的问题,我不应该对我的映射做任何特别的事情.因此,我的所有DateTime属性都设置如下:
public virtual DateTime? CreatedOn { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我的数据库(SQL2008)中,所有DateTime属性都设置为允许null.我有我的NHibernate配置文件设置使用SQL2008方言:
<property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
Run Code Online (Sandbox Code Playgroud)
NHibernate适用于任何不包含DateTime的东西.作为参考,这是我收到的确切错误:
> at
> NHibernate.AdoNet.SqlClientSqlCommandSet.ExecuteNonQuery()</StackTrace><ExceptionString>System.Data.SqlTypes.SqlTypeException:
> SqlDateTime overflow. Must be between
> 1/1/1753 12:00:00 AM and 12/31/9999
> 11:59:59 PM.
Run Code Online (Sandbox Code Playgroud)
如果我运行SQL事件探查器,我可以看到NHibernate尝试执行的最后一个命令(这是一个非常长的语句,所以我截断了它):
exec sp_executesql N'UPDATE Projects SET Job = @p0, CreatedOn = @p1, .. WHERE (Where Clause), @p0=219221, @p1=NULL
Run Code Online (Sandbox Code Playgroud)
如果我将此语句作为查询执行,SQL会保持正常,不会抱怨!
这是怎么回事?