我想阻止用户在.NET MVC中多次提交表单.我已经尝试了几种使用Javascript的方法,但很难在所有浏览器中使用它.那么,如何在我的控制器中防止这种情况呢?在某种程度上可以检测到多个提交?
有人最近在我们的Mercurial存储库中添加了PowerShell(.ps1)脚本.该文件是纯文本,但TortoiseHg似乎认为它是二进制文件并显示一条消息:"文件或差异未显示:文件是二进制文件".
如何告诉TortoiseHg ps1文件是文本而不是二进制文件.我正在使用版本TortoiseHg 2.0.3
我最近一直在阅读关于持续集成的一些内容,并且有一种情况可能会发生,我不明白如何正确处理.
我们有一个稳定的主线/中继分支,并为功能创建分支.每个开发人员将通过定期从主干到其分支合并来保持自己的功能分支最新.但是,完全有可能在几周或几个月的时间内创建并处理两个或更多个功能分支.在这个时候,可以部署许多版本的软件.这就是我的困惑所在.
一个功能分支的更改很可能会导致与其他功能分支的合并冲突.CI建议您至少应每天合并到主干中,以便快速解决冲突.但是,您可能不希望将功能代码合并到主干中,因为它可能尚未完成,或者您可能不希望在下一版本中提供该功能.那么,您如何处理这种情况并仍然遵循日常代码集成的CI原则?
偶尔我会向存储库提交一些代码,添加注释/摘要,然后阅读摘要,并意识到我犯了一个错误或应该包含更多信息.在TortoiseHg中提交后可以编辑摘要吗?我正在使用1.1版
我已经阅读了很多关于功能切换但没有使用它们的实际经验.人们推荐哪些工具和技术来有效管理功能切换?
我想最简单的方法是将web.config文件中的切换作为true/false值存储为appSettings,但这听起来不是特别好的方法.
理想情况下,我希望任何管理功能的方法切换为:
我正在尝试使用NHibernate构建一个标准对象,它将date1与date2相比减去一个值.在Sql Server中我会这样做:
select*from table where date1 <DateAdd(Day,2,date2)
任何人都可以告诉我如何在NHibernate中做到这一点?
干杯
编辑
我之前应该已经指定了这个,我想知道如何使用条件API来做到这一点.
此外,date1和date2是表中的列,因此在运行查询之前我不知道它们的值
在ASP.NET MVC 3项目中,我需要验证视图中的名称字段以允许特定的集合重音字符.所以在我的视图模型中,我在相应的属性上定义了一个正则表达式属性,如下所示:
[RegularExpression("^[a-zA-Zá]{2,50}$")]
Run Code Online (Sandbox Code Playgroud)
请注意,这不是确切的代码,它简化了以使我的问题更容易理解.
这个正则表达式在服务器端工作正常,但在客户端不起作用.如果查看输入字段的HTML,则包含以下属性:
data-val-regex-pattern="^[a-zA-Z&#225;]{2,50}$"
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,重音字符已转换为HTML实体,该实体会破坏正则表达式.任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?
UPDATE
道歉我是一个完整的白痴.我完全忘记了几天前我们升级到MVC 4测试版.随后我创建了两个小的测试项目,一个在MVC 3中,一个在MVC 4中.这个问题只存在于MVC 4中.
我在jQuery对话框中有几个jQuery日期选择器.每当用户从日期选择器中选择日期时,屏幕就会滚动到顶部.这只发生在IE8而不是Firefox 3.6或Chrome 5.由于大多数用户将使用IE,这将非常烦人.任何人都可以给我一个线索,为什么会发生这种情况?
以下是对话框的HTML代码段:
<div id="AppointmentDialog" style="display: none; font-size: 12px;">
<table>
<tr class="lesson notAvailable allDay">
<td>
Start
</td>
<td>
<input id="txtStartDate" type="text" readonly="readonly" style="width: 90px" class="lesson notAvailable allDay" />
<input id="txtStartTime" type="text" style="width: 50px" class="lesson notAvailable" />
<input id="hidStartTime" type="hidden" value="" />
</td>
</tr>
<tr class="notAvailable allDay">
<td>
End
</td>
<td>
<input id="txtEndDate" type="text" readonly="readonly" style="width: 90px" class="notAvailable allDay" />
<input id="txtEndTime" type="text" style="width: 50px" class="notAvailable" />
<input id="hidEndTime" type="hidden" value="" />
</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud)
用于初始化对话框和日期选择器的Javascript片段:
$(document).ready(function() {
initDialogs(); …
Run Code Online (Sandbox Code Playgroud) 脚本
我们有TeamCity 8.1.3构建每个拉取请求.GitHub报告了构建失败.这很棒.但是没有查看视图错误.这是不好的.我可以全面启用MvcBuildViews,但我不愿意,因为我们的解决方案非常庞大,而且编译时间大约是三倍.
我想做的是只有在PR中的提交中更改了视图时才启用MvcBuildViews.例如,如果有人更改.cs文件,则正常编译.如果更改.cshtml文件,则启用MvcBuildViews并编译.
我试过的
我的第一次尝试使用了VCS触发器.我在TeamCity中设置了两个几乎相同的项目.唯一的区别是VCS触发器.一个构建旨在构建代码更改和其他视图更改.
代码更改触发器规则:-:\**.cshtml
和+:**.cs
查看更改触发器规则: +:**.cshtml
这不像我希望的那样有效.在同一分支上提交.cs文件和.cshtml文件将触发两个构建.
我的第二次尝试是使用PowerShell构建步骤.我想知道PowerShell是否可用于读取teamcity.build.changedFiles.file代理构建属性,确定是否已更改cshtml文件,如果是,则将MvcBuildViews设置为true.
这失败了,因为我无法弄清楚读取代理属性.我找到了这个相关的SO问题,但它没有用.
我的PS构建步骤看起来像这样.我大部分时间都在抓着稻草.
write-host "##teamcity[message text='Starting PhilTest build step']"
write-host "##teamcity[message text='Build number $env:build_number']" #Outputs build number
write-host "##teamcity[message text='Changed files $env:teamcity_build_changedFiles_file']" #Outputs nothing
foreach ($row in $env:teamcity_build_changedFiles_file)
{
write-host "##teamcity[message text='Changed files row $row']" #Outputs nothing
}
write-host "##teamcity[message text='Ending PhilTest build step']"
Run Code Online (Sandbox Code Playgroud)
接下来是什么?
有没有人这样做过?有谁知道我以前如何尝试工作或知道另一种方法吗?
我使用TortoiseHg 1.1,在我们的团队中,我们倾向于为我们处理的每个案例创建命名分支,然后在完成后合并默认值.不幸的是,大多数命名分支都没有关闭.这不是一个大问题,但当您尝试按当前正在处理的分支进行过滤并且有大量旧分支要搜索时,这很烦人.
那么在TortoiseHg或命令行中有一个简单的方法可以快速关闭多个分支而无需在每个分支上手动提交和关闭吗?
我已经创建了一个MSBuild.xml文件来自动化我的ASP.NET项目构建.它构建项目,发布它,拉链并将zip复制到网络共享.如果我之前已经登录过网络文件夹,这一切都完美无缺.访问网络共享后,会记住用户名和密码,直到我退出计算机.如果我以前没有登录,则在运行构建文件时出现"失败:未知用户名或密码错误"错误.无论我以前是否访问过网络共享,我都希望构建工作始终有效.
目前我正在使用复制任务将zip文件复制到网络共享.我已经检查了复制任务文档,但我看不到任何包含凭据的方法.那么,如何将文件复制到网络共享传递所需的用户名和密码?
这是我正在使用的复制任务的示例.所有属性都在MSBuild.xml文件的顶部定义:
<Target Name="CopyToServer">
<Copy SourceFiles="$(ReleaseFolder)\$(ZipFileName).zip" DestinationFolder="$(WebServerRoot)" />
</Target>
Run Code Online (Sandbox Code Playgroud) tortoisehg ×3
.net ×2
asp.net-mvc ×2
binaryfiles ×1
criteria ×1
diff ×1
jquery-ui ×1
mercurial ×1
msbuild ×1
msbuild-task ×1
nhibernate ×1
ninject ×1
powershell ×1
regex ×1
teamcity ×1