我有我的MVC视图..
//Submit file
<% using (Html.BeginForm("MethodName","ControllerName", FormMethod.Post, new { enctype = "multipart/form-data"})) { %>
<input type="file" name="file" id="file"/>
<input type="text" id="file-name" name="Id"/>
<input type="submit" value="Submit" name="Submit"/>
<% } %>
//Save link.
<span class="Update" onclick="js.function()">Update</span>
一旦我点击“提交”按钮,我就会转到控制器和方法来运行一些将文件提交到数据库的代码。完成后,我需要自动点击/强制点击保存链接,以便在提交后运行js功能..我该怎么做。
答案 0 :(得分:2)
我会使用Ajax.BeginForm,在OnSuccess处理程序中,您可以单击按钮。你的代码看起来像这样(没有经过测试,但应该引导你朝着正确的方向):
<% using (Ajax.BeginForm("MethodName","ControllerName",
new AjaxOptions {
OnSuccess ="OnSuccess",
OnFailure ="OnFailure"
},
new {
enctype = "multipart/form-data"
})) { %>
<input type="file" name="file" id="file"/>
<input type="text" id="file-name" name="Id"/>
<input type="submit" value="Submit" name="Submit"/>
<% } %>
<强>的Javascript 强>:
function OnSuccess() {
$('.Update').trigger('click');
}
修改:如果您没有尝试上传文件,我的上述答案将是您想要的。但是,当我注意到你试图发布一个文件时,我已经对此进行了一些调查;并且你不能使用ajax上传文件而不使用html 5,iframe hacks等。在我看来,你最好的选择是使用上传者uploadify或plupload使用html5来解决这个问题,基于你如何设置它们的闪光或黑客攻击。
此外,binding-httppostedfilebase-using-ajax-beginform是一个类似的问题,可能会有所帮助。
答案 1 :(得分:0)
您可以通过多种方式执行此操作。您可以使用提交按钮作为触发器,防止默认情况发生,这将是发布的标准方法。然后调用jquery post / get / ajax方法。从那个帖子/ get / ajax继承之后运行你想要做的任何其他事情。
如果您还有其他想法,可以点击带有jquery的按钮,即:
$('button').trigger('click');
不幸的是,你的描述有点开放,所以很难给出具体的答案。
答案 2 :(得分:0)
为了自动trigger
点击(或任何其他类似事件),您需要首先建立如下事件:
// setting up the event (in case they actually click it)
$('.Update').on('click', function () {
test();
});
// this will automatically call it
$('.Update').trigger('click');
// whatever your function is doing
function test () {
alert('here');
}