小编mfl*_*yan的帖子

如何使用JavaScript而不是提交按钮发布ASP.NET MVC Ajax表单

我有一个简单的表单创建使用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发布它.我对这个特定的解决方案很感兴趣.

javascript asp.net-mvc jquery asp.net-ajax

44
推荐指数
3
解决办法
10万
查看次数

在一个java项目的ant中运行groovy单元测试

我有一个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斯波克框架.

ant groovy unit-testing

13
推荐指数
1
解决办法
2451
查看次数

.NET的不同MVC框架的优缺点

随着围绕MVC的所有炒作(以及正确的),我决定自己动手并编写我的第一个.NET MVC Web应用程序.有几个选项可供选择,我想知道人们推荐哪种MVC框架.

看起来前两个真的是最有力的竞争者.另外一些DI容器是MVC的自然补充 - MonoRail 已经有了一个,而ASP.NET MVC也许可以使用像Unity这样的东西.

.net c# model-view-controller

12
推荐指数
1
解决办法
1万
查看次数

使用Java在Google App Engine上存储上传的图像

我正在考虑在Google App Engine上编写Java Web应用程序.我希望能够从应用程序上传和提供图像,但只是意识到数据存储区有1MB的限制.这对于体面的照片来说有点太少了.有没有其他方法可以建议你这样做?也许将它们存储为静态内容而不是数据存储区,但似乎没有API.

java upload google-app-engine image

5
推荐指数
1
解决办法
4521
查看次数

使用NHibernate Criteria 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)

c# nhibernate icriteria criteria-api

5
推荐指数
1
解决办法
5014
查看次数

ASP.NET应用程序的国际化库

我正在ASP.NET(2.0),VS2005中编写一个Web应用程序.开发新应用程序(而不是使用现成的现成解决方案)的主要原因是我需要完全支持至少两种语言(即前端和数据).我正在寻找在ASP.NET中处理i18n的最佳方法(它可以只是UI,整理DB更简单).显然.NET提供了自己的i18n机制,我之前一直在使用它们,但并没有给人留下太深刻的印象 - 在我看来,我在C++和Java的几个大型开源项目中使用了gettext.我正在寻找满足以下要求的解决方案:

  • 所有翻译都集中在一个地方
  • 添加新语言很容易
  • 翻译不需要VS,可以由相当缺乏经验的用户(翻译)完成
  • 发现可用的语言
  • 对原始字符串的更改很容易级联到现有翻译
  • 支持复数形式(ngettext)

(更多想法?)

.net asp.net translation internationalization

3
推荐指数
1
解决办法
1699
查看次数

如何从mercurial中的"主"存储库获取对谷歌代码上托管的项目的更改?

我从code.google.com托管的项目中创建了一个"服务器"克隆.我在我的机器中从该存储库创建一个克隆并推送一些更改; 一切顺利.

现在主存储库有一些更改,我想拉它们.如何使用这些更改更新"服务器"克隆?

mercurial google-code

3
推荐指数
1
解决办法
226
查看次数

Grails:标准构建器中的字段总和

在控制器中创建标准后,我不知道如何创建特定字段的运行总和

我正在使用以下方法创建一组记录:

    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)

grails hibernate controller

3
推荐指数
1
解决办法
7497
查看次数