2012-11-29 38 views
2

我在我的MVC应用程序中使用的WebGrid,传呼我使用这个代码提交表单与当执行form.submit(),它执行GET和POST没有提交Jquery的,而不是获取发布

var links = $('a[href*=page], a[href*=sort]'); 
     form = $('form')[0]; 
     links.click(function() { 
      debugger; 
      form.attr("action", this.href); 
      $(this).attr("href", "javascript:"); 
      form.submit(); 
     }); 

@using (Html.BeginForm(Model.PostToAction, "Leads", FormMethod.Post)) 

我做错了什么?

UPDATE:

我的形式是:

<form action="/Leads/DetailsLeads" method="post"> 

控制器是:

[HttpPost] 
     public ActionResult DetailsLeads(LeadDetailsViewModel model) 
+0

你可以试试这个:'form.attr(“法”,“后”);' –

+0

这给了相同的结果 – StringBuilder

+0

你看了呈现的HTML,以验证正在创建它作为一个“后“形式方法?你能粘贴控制器声明吗?另外,我很清楚,你是否将动作URL更改为各自点击的链接的href? – TNCodeMonkey

回答

6

尝试增加e.preventDefault()links.click(function(){}块内。否则,浏览器仍会尝试执行您指示它执行的操作(点击链接上的GET请求)。

var links = $('a[href*=page], a[href*=sort]'); 
     form = $('form')[0]; 
     links.click(function (e) { 
      e.preventDefault(); 
      debugger; 
      form.attr("action", this.href); 
      $(this).attr("href", "javascript:"); 
      form.submit(); 
     });