我有一个简单的表单创建使用Ajax.BeginForm:
<% using (Ajax.BeginForm("Update", "Description", new { id = Model.Id },
new AjaxOptions
{
UpdateTargetId = "DescriptionDiv",
HttpMethod = "post"
},new {id ='AjaxForm' })) {%>
Description:
<%= Html.TextBox("Description", Model.Description) %><br />
<input type="submit" value="save" />
<% }%>
Run Code Online (Sandbox Code Playgroud)
控制器已接线并返回更新的部分视图DescriptionDiv.这一切都很巧妙.
现在我希望能够在没有提交按钮的情况下提交此表单(通过链接或图像上的clik或其他任何内容).不幸的是,这个小jQuery片段不起作用:
$('form#AjaxForm').submit();
Run Code Online (Sandbox Code Playgroud)
它确实提交了表单,但确实(我想并不奇怪)是一个常规的回发而不是Ajax.
为简单起见,上面的jQuery是这样连接起来的:
<a href="#" onclick="$('form#AjaxForm').submit(); return false;">submit</a>
Run Code Online (Sandbox Code Playgroud)
表单的onsubmit使用的是Sys.Mvc.AsyncForm.handleSubmit(),但jQuery提交似乎绕过了这个.
PS.我正在寻找这种特殊方法的解决方案.我知道如何使用普通表单实现相同的功能并使用AJAX + jQuery发布它.我对这个特定的解决方案很感兴趣.
我有一个Java项目,其中包含使用JUnit编写的一些单元测试.最近添加了一些新的单元测试,这些测试是用groovy编写的(也使用JUnit),因为它更容易使那些更具表现力且通常更容易阅读.它还允许我们使用spock框架.
该项目是用ant构建和测试的.
在添加groovy类之前,使用以下ant任务运行单元测试:
<target name="test" depends="test-compile">
<junit printsummary="yes">
<classpath>
<path refid="test.classpath"/>
</classpath>
<formatter type="plain"/>
<batchtest fork="yes" todir="${test.dir}/report">
<fileset dir="${test.dir}/unit" includes="**/*.java"/>
</batchtest>
</junit>
</target>
Run Code Online (Sandbox Code Playgroud)
但是,这种方法不适用于groovy测试,因为它们在*.groovy文件中,并且可以理解的是,JUnit Ant任务无法识别它们fileset.
另一种方法是使用这样的*.class文件batchtest fileset:
<batchtest fork="yes" todir="${test.dir}/report">
<fileset dir="${test.dir}/${build.dir}">
<include name="**/*Test*.class" />
</fileset>
</batchtest>
Run Code Online (Sandbox Code Playgroud)
这会产生漏报,因为还包含了闭包类文件,因此可能的解决方法是排除这些文件.
<batchtest fork="yes" todir="${test.dir}/report">
<fileset dir="${test.dir}/${build.dir}">
<include name="**/*Test*.class" />
<exclude name="**/*$*.class" />
</fileset>
</batchtest>
Run Code Online (Sandbox Code Playgroud)
是否有更好的方法来确定junit ant任务的测试类?也许一个基于反射和@Test属性手动列出所有测试类(这将非常好地工作)并不是一个真正可维护的解决方案.有点像SpecClassFileSelector从斯波克框架.
随着围绕MVC的所有炒作(以及正确的),我决定自己动手并编写我的第一个.NET MVC Web应用程序.有几个选项可供选择,我想知道人们推荐哪种MVC框架.
看起来前两个真的是最有力的竞争者.另外一些DI容器是MVC的自然补充 - MonoRail 已经有了一个,而ASP.NET MVC也许可以使用像Unity这样的东西.
我正在考虑在Google App Engine上编写Java Web应用程序.我希望能够从应用程序上传和提供图像,但只是意识到数据存储区有1MB的限制.这对于体面的照片来说有点太少了.有没有其他方法可以建议你这样做?也许将它们存储为静态内容而不是数据存储区,但似乎没有API.
我有以下域设置为NHibernate持久化:

我使用PaperConfiguration作为根聚合.
我想为给定的Tier和AcademicYearConfiguration选择所有PaperConfiguration对象.根据以下示例,这非常有效:
ICriteria criteria =
session.CreateCriteria<PaperConfiguration>()
.Add(Restrictions.Eq("AcademicYearConfiguration", configuration))
.CreateCriteria("Paper")
.CreateCriteria("Unit")
.CreateCriteria("Tier")
.Add(Restrictions.Eq("Id", tier.Id))
return criteria.List<PaperConfiguration>();
Run Code Online (Sandbox Code Playgroud)
(也许有更好的方法可以做到这一点).
还需要知道每个PaperConfiguration有多少ReferenceMaterials,我想在同一个调用中得到它.避免使用HQL - 我已经有了HQL解决方案.
我知道这是预测的目的,这个问题暗示了一个想法,但我无法让它发挥作用.
我有一个PaperConfigurationView,而不是IList<ReferenceMaterial> ReferenceMaterialsReferenceMaterialCount,并且正在思考
ICriteria criteria =
session.CreateCriteria<PaperConfiguration>()
.Add(Restrictions.Eq("AcademicYearConfiguration", configuration))
.CreateCriteria("Paper")
.CreateCriteria("Unit")
.CreateCriteria("Tier")
.Add(Restrictions.Eq("Id", tier.Id))
.SetProjection(
Projections.ProjectionList()
.Add(Projections.Property("IsSelected"), "IsSelected")
.Add(Projections.Property("Paper"), "Paper")
// and so on for all relevant properties
.Add(Projections.Count("ReferenceMaterials"), "ReferenceMaterialCount")
.SetResultTransformer(Transformers.AliasToBean<PaperConfigurationView>());
return criteria.List< PaperConfigurationView >();
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.我究竟做错了什么?
以下简化查询:
ICriteria criteria =
session.CreateCriteria<PaperConfiguration>()
.CreateCriteria("ReferenceMaterials")
.SetProjection(
Projections.ProjectionList()
.Add(Projections.Property("Id"), "Id")
.Add(Projections.Count("ReferenceMaterials"), "ReferenceMaterialCount")
).SetResultTransformer(Transformers.AliasToBean<PaperConfigurationView>());
return criteria.List< PaperConfigurationView >();
Run Code Online (Sandbox Code Playgroud)
创建这个意外的SQL:
SELECT
this_.Id …Run Code Online (Sandbox Code Playgroud) 我正在ASP.NET(2.0),VS2005中编写一个Web应用程序.开发新应用程序(而不是使用现成的现成解决方案)的主要原因是我需要完全支持至少两种语言(即前端和数据).我正在寻找在ASP.NET中处理i18n的最佳方法(它可以只是UI,整理DB更简单).显然.NET提供了自己的i18n机制,我之前一直在使用它们,但并没有给人留下太深刻的印象 - 在我看来,我在C++和Java的几个大型开源项目中使用了gettext.我正在寻找满足以下要求的解决方案:
(更多想法?)
我从code.google.com托管的项目中创建了一个"服务器"克隆.我在我的机器中从该存储库创建一个克隆并推送一些更改; 一切顺利.
现在主存储库有一些更改,我想拉它们.如何使用这些更改更新"服务器"克隆?
在控制器中创建标准后,我不知道如何创建特定字段的运行总和
我正在使用以下方法创建一组记录:
def b = Tapes.createCriteria()
def yesterday = b.list(sort: 'migratedDate', order: 'asc') {
between ("migratedDate", dat.minus(1), dat)
}
Run Code Online (Sandbox Code Playgroud)
并计算该组中的项目数
def num2 = Tapes.countByMigratedDateBetween(dat.minus(1), dat)
Run Code Online (Sandbox Code Playgroud)
我的域中的一个字段是"migratedDuration",系统以毫秒为单位返回进程的运行时.在控制器中有一种方法可以创建这个数字的总和吗?或者我应该在相应的.gsp文件中通过javascript执行此操作吗?
再次感谢,
一个可怕的糟糕黑客
这非常有效,谢谢
def todayTime = aa.list() {
between ("migratedDate", dat.minus(4), dat.minus(3))
projections { sum('migratedDuration')
}
}
Run Code Online (Sandbox Code Playgroud) .net ×2
c# ×2
ant ×1
asp.net ×1
asp.net-ajax ×1
asp.net-mvc ×1
controller ×1
criteria-api ×1
google-code ×1
grails ×1
groovy ×1
hibernate ×1
icriteria ×1
image ×1
java ×1
javascript ×1
jquery ×1
mercurial ×1
nhibernate ×1
translation ×1
unit-testing ×1
upload ×1