【问题标题】:Programmatically submitting a Microsoft AJAX form以编程方式提交 Microsoft AJAX 表单
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 好的,谢谢,这正是我的想法,但我想确保我没有忽略任何事情。
    猜你喜欢
    • 2010-11-22
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2011-02-06
    • 2020-10-03
    • 1970-01-01
    • 2013-12-06
    相关资源
    最近更新 更多