以编程方式提交Microsoft AJAX表单

时间:2009-06-15 17:36:45

标签: c# .net jquery asp.net-mvc ajax

我正在使用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; 
});

所以,我的问题是:做这个时我应该注意哪些安全问题?对我来说似乎应该没问题,但在开始向我的代码添加evals之前我想确定。

1 个答案:

答案 0 :(得分:2)

用户可以使用Firebug等工具在客户端修改页面并添加他想要的任何eval()函数调用,但这不会以任何方式破坏网站安全。