【发布时间】:2009-06-15 17:36:45
【问题描述】:
我正在使用 ASP.NET MVC 和 Microsoft AJAX 使用以下语法创建 AJAX 表单:
using (Ajax.BeginForm()) { ... }
如果用户单击提交按钮,这可以正常工作。但是,我还需要以编程方式提交表单。问题是,MS AJAX 的工作方式(出于我无法理解的原因)是将提交操作放在 onsubmit 属性中,而不是注册事件:
<form onsubmit="Sys.Mvc.AsyncForm.handleSubmit(..."
method="post" action="/Search/SearchForClients">
这是一个问题的原因是,如果您使用 jQuery 以编程方式提交表单(即 $('form').submit()),则不会调用 onsubmit 属性的内容。
幸运的是,我在 site 找到了一种解决方法,它告诉您基本上评估 onsubmit 属性的内容并将其添加为事件处理程序:
$("form").submit(function(event) {
eval($(this).attr("onsubmit")); return false;
});
所以,我的问题是:在执行此操作时是否应该注意任何安全问题?对我来说似乎应该没问题,但我想在开始向我的代码中添加 eval 之前确定。
【问题讨论】:
标签: c# .net jquery asp.net-mvc ajax