2011-06-18 88 views
1

我有這樣的代碼在View:使用jQuery形式插件asp.net MVC 3

<script src="../../Scripts/jquery.form.js" type="text/javascript"></script> 
<script src="../../Scripts/jquery-1.5.1.js" type="text/javascript"></script> 

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#myForm').ajaxSubmit(); 
}); 

@using (Html.BeginForm("PostData","Home",FormMethod.Post)) { 

<input type="text" name="name" /> 
<input type="submit" value="submit" /> 
} 

然後在控制器我有這樣的方法:

[HttpPost] 
    public void PostData(string name) 
    { 
     //do smoething with name 
    } 

問題是我在提交表單時重定向了url/home/PostData。

任何人有任何建議嗎?

回答

4

ajaxSubmit()立即提交表格。

$(document).ready(function() { 
    $('#myForm').ajaxForm(); 
}); 

一旦形式已經支持Ajax,你可以稍後迫使其提交與$('#myForm').ajaxSubmit();或者乾脆把它留給用戶按提交按鈕:你爲了AJAXify現有表單需要ajaxForm()

此外,您定義表單的方式似乎沒有ID。所以你的$('#myForm')選擇器不可能返回任何東西。您可能要分配一個id,你的形式:

@using (Html.BeginForm("PostData", "Home", FormMethod.Post, new { id = "myForm" })) 
{ 
    <input type="text" name="name" /> 
    <input type="submit" value="submit" /> 
} 

,或者如果你不想通過調整你的jQuery選擇唯一的ID分配形式,你可以AJAXify一切形式的當前視圖:

$(document).ready(function() { 
    $('form').ajaxForm(); 
}); 
+0

謝謝,它的工作原理。 – espenk