C# 表单提交结束时的事件
我有这个:C# 表单提交结束时的事件,c#,javascript,jquery,C#,Javascript,Jquery,我有这个: <form id="import_form" method="post" enctype="multipart/form-data" action="/Blah/Blah"> <input type="file" id="fileUpload" name="fileUpload"/> <input type="submit" name="submit" value="Import"/> </form> $('#impo
<form id="import_form" method="post" enctype="multipart/form-data" action="/Blah/Blah">
<input type="file" id="fileUpload" name="fileUpload"/>
<input type="submit" name="submit" value="Import"/>
</form>
$('#import_form').submit(function () {
...
});
我希望Blah在执行完JavaScript代码后开始执行。如何做到这一点?
在提交事件之前调用提交事件。这取决于表单的提交方式 如果您通过AJAX提交表单,那么您可以在处理程序中为响应执行一些JavaScript。但是,考虑到有一个
submit
按钮,我现在假设您不是通过AJAX执行此操作,而是将整个页面发布到服务器并呈现响应
在本例中,要在表单post之后执行一些JavaScript,需要在服务器的响应中呈现该JavaScript,作为下一页的一部分。当服务器构造视图时,包括要在该视图中执行的JavaScript
请记住web的请求/响应性质。当服务器上的某个东西执行时,客户机不知道它并断开了与它的连接。任何服务器端处理的最终结果都应该是对客户端的HTTP响应。在提交表单或单击链接或任何导致页面重新加载的情况下,该响应以新页面(视图)的形式出现。因此,在服务器端处理之后要在客户机上执行的任何操作都需要作为响应的一部分
Edit:我刚刚注意到
Blah
正在返回一个字符串。这对你有用吗?表单提交如何在新视图中产生结果?还是我不知道ASP.NET MVC中有什么功能?这就是我最后所做的
我的表单返回与调用它的人完全相同的视图
我在Blah方法中添加了一个ViewData
在视图中,在$(function())事件中,我检查ViewData是否有值,然后执行javascript代码。表单是如何提交的?AJAX还是常规?表单定义有action=“/Blah/Blah”。问题中已说明。问题似乎重复,除非您使用AJAX提交,否则您需要在操作文件中运行提交后代码。@charlietfl什么是提交后代码?
[AcceptVerbs(HttpVerbs.Post)]
public string Blah(HttpPostedFileBase fileUpload, FormCollection form)
{ ... }