Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Net MVC,使用javascript提交表单_Javascript_Asp.net Mvc - Fatal编程技术网

Net MVC,使用javascript提交表单

Net MVC,使用javascript提交表单,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我在一个ASP.NETMVC视图上有一个表单,我使用以下代码创建了该表单 <% using (Html.BeginForm(null, null, FormMethod.Post)) 您可以使用jquery提交表单: <% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm"})) { %> 不要忘了包括mvc附带的jquery-1.2.6.js(或使用更高版本)。如果该页面上只有一个

我在一个ASP.NETMVC视图上有一个表单,我使用以下代码创建了该表单

 <% using (Html.BeginForm(null, null, FormMethod.Post))

您可以使用jquery提交表单:

<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm"})) { %>

不要忘了包括mvc附带的jquery-1.2.6.js(或使用更高版本)。

如果该页面上只有一个表单,您可以通过以下方式访问该表单:

document.forms[0].
因此,您可以添加一个链接:

<a href="javascript:document.forms[0].submit()">submit form</a>

如果需要设置表单名称,请使用BeginForm方法的object HtmlatAttributes参数

<% using 
  (Html.BeginForm(null, null, FormMethod.Post,
     new {name="MySuperForm"})) %>


要通过javascript提交表单,请查看。可能很有用。

这个简单的解决方案无需回发即可提交Ajax表单

<a href="#" onclick="$('#sbmt').trigger('click'); return false">Generate</a>
<input id="sbmt" type="submit" style="visibility: hidden" />


适用于IE和Firefox。

如果您想使用jQuery而不命名表单,并且页面上只有一个表单,您可以在页面上添加如下链接:

<a href="#" class="submitForm">Submit</a>

因此,这是一种不需要你命名表单的方式(就像我在我的网站上那样),只要你只有一个表单。这么说来,你可能需要提交多个表单。

我喜欢MVC如此简单地制作这样的东西。要么你的括号不合适,要么事情自2009年以来发生了一些变化!这就是使用Razor语法对我有效的地方:@using(Html.BeginForm(null,null,FormMethod.Post,new{id=“form”}))[Edit:刚刚注意到ajbeaven在另一个答案中指出了这一点]巧妙的解决方案。我喜欢这个答案+1
.submit()
导致重定向到
POST
控制器方法返回的视图。是否可以在不重定向的情况下提交?您可以让控制器返回具有不同数据的相同视图,然后向用户显示某种响应。如果您根本不想重新加载页面,那么可以完全放弃表单,将一个淘汰视图模型绑定到页面,然后使用jQuery ajax调用将数据发布到控制器,这样您就可以在不发布传统意义上的表单的情况下发布到控制器。
<a href="#" class="submitForm">Submit</a>
$(document).ready(function () {
    $("a.submitForm").click(function () {
        $("form").submit();
    });
});