Tôi đang gặp một số khó khăn với Ajax.BeginFormasp.net MVC Ajax.BeginForm
Tôi có một cái gì đó như thế này trong một cái nhìn
<% using (Ajax.BeginForm("ActionName", null , null, new { id = "FormName" }))
{%>
<input type="hidden" value = '<%= Html.Encode(Model.id) %>' name="id"/>
<textarea id="message" name=message rows="4" style="width: 90%">
</textarea>
<% }%}
Và phương pháp hành động là một cái gì đó giống như
này[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult ActionName(int id, string message)
{
....
}
Tôi đang cố chuyển 'id' và 'message' sang phương thức hành động. Tôi đang đi qua 'null' cho routeValues nhưng tôi không biết những gì để vượt qua. Lý tưởng nhất là tôi đã cố gắng để tìm một tình trạng quá tải mà không yêu cầu giá trị tuyến đường nhưng đã actionName và htmlattributes (cho tên mẫu) nhưng tôi không thể tìm thấy một. Tôi không muốn thêm 'tin nhắn' để xem-mô hình và tôi cần FormName trong đó cho các hoạt động jquery. Cách tốt nhất để giải quyết vấn đề này là gì?
Ồ, tôi quên đề cập đến, Đây là cách tôi gửi dưới dạng
$.post($("#FormName").attr('action'), $("#FormName").serialize(),
function(result) {
$("#correspondingDiv").html(result);
}
);
Khi tôi thử giải pháp này, phương thức hành động của bộ điều khiển được gọi nhưng nó vẫn có các giá trị tuyến đường ban đầu được định nghĩa trong BeginForm và không phải là các giá trị được điền trong biểu mẫu. Có suy nghĩ gì không? –
Không có cách nào bằng cách sử dụng Ajax.BeginForm để điền các giá trị từ biểu mẫu của bạn, bởi vì trình trợ giúp BeginForm được gọi khi trang được hiển thị. Bạn có thể nhận được các giá trị của các trường biểu mẫu bằng cách sử dụng Request.Form. –