1
我試圖通過jQuery Ajax將表單提交給我的控制器。下面的代碼大部分工作,但是,ThreadId參數不被傳遞。如果我直接調用控制器而不使用jQuery,它會被傳遞,但是當使用jQuery時,我在form.serialize()後面看不到ThreadId。將參數(如ThreadId)傳遞給jQuery form post最簡單的方法是什麼?在ASP.NET MVC中通過jQuery提交表單時傳遞參數
ASPX
<% Html.BeginForm("AddComment", "Home", new { ThreadId = Model.Id },
FormMethod.Post, new { @id = "AddComment" + Model.Id.ToString(),
@onsubmit = "javascript:AddComment(this);return false" }); %>
<%: Html.TextBox("CommentText", "", new { @class = "comment-textbox" })%>
<input id="Comment" type="submit" name="submitButton" value="Post Comment" />
<% Html.EndForm(); %>
的JavaScript
AddComment = function (sender) {
var form = $(sender);
var data = form.serialize();
$.ajax({
type: "POST",
url: "/Home/AddComment",
data: data,
dataType: "html",
success: function (response) {
alert(response);
},
error: function (error) {
alert(error);
}
});
return false;
};
CONTROLLER
[HttpPost]
public ActionResult AddComment(string submitButton, Comment comment)
{
comment.CreatedDate = DateTime.Now;
comment.PosterId = LoggedInUser.Id;
_repository.AddComment(comment);
_repository.Save();
if (Request.IsAjaxRequest())
{
return View("Comment", comment);
}
else
return RedirectToAction("Index");
}
謝謝!你的對,該行動確實有正確的網址。但是,出於某種原因,而不是我的AddComment方法被調用,我的索引方法被調用。仍試圖找出原因。 – Prabhu 2010-10-23 21:08:36
沒關係,我在做form.action,當它應該是sender.action。謝謝你的幫助。 – Prabhu 2010-10-23 21:24:45
順便說一句,我有2個按鈕的形式,當我這樣做沒有jQuery我用輸入按鈕名稱屬性找出哪個按鈕發送請求在控制器端。任何想法如何我可以用jQuery做到這一點? – Prabhu 2010-10-23 21:26:13