Tôi mới trong Asp.net MVC và tôi đã nghiên cứu về Ajax.BeginForm
nhưng khi tôi áp dụng mã, nó không hoạt động. Bạn có thể chia sẻ ví dụ rất đơn giản với Ajax.Beginform
với Chế độ xem, Bộ điều khiển, Mô hình không? Cảm ơn.Làm thế nào để sử dụng Simple Ajax Beginform trong Asp.net MVC 4?
Trả lời
Ví dụ đơn giản: Biểu mẫu có hộp văn bản và nút Tìm kiếm.
Nếu bạn viết "tên" vào số textbox
và gửi biểu mẫu, nó sẽ mang đến cho bạn bệnh nhân có "tên" trong bảng.
Xem:
@using (Ajax.BeginForm("GetPatients", "Patient", new AjaxOptions {//GetPatients is name of method in PatientController
InsertionMode = InsertionMode.Replace, //target element(#patientList) will be replaced
UpdateTargetId = "patientList",
LoadingElementId = "loader" // div with .gif loader - that is shown when data are loading
}))
{
string patient_Name = "";
@Html.EditorFor(x=>patient_Name) //text box with name and id, that it will pass to controller
<input type="submit" value="Search" />
}
@* ... *@
<div id="loader" class=" aletr" style="display:none">
Loading...<img src="~/Images/ajax-loader.gif" />
</div>
@Html.Partial("_patientList") @* this is view with patient table. Same view you will return from controller *@
_patientList.cshtml:
@model IEnumerable<YourApp.Models.Patient>
<table id="patientList" >
<tr>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Number)
</th>
</tr>
@foreach (var patient in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => patient.Name)
</td>
<td>
@Html.DisplayFor(modelItem => patient.Number)
</td>
</tr>
}
</table>
Patient.cs
public class Patient
{
public string Name { get; set; }
public int Number{ get; set; }
}
PatientController.cs
public PartialViewResult GetPatients(string patient_Name="")
{
var patients = yourDBcontext.Patients.Where(x=>x.Name.Contains(patient_Name))
return PartialView("_patientList", patients);
}
Và cũng như TSmith nói trong ý kiến, đừng quên để cài đặt jQuery Không phô trương Ajax thư viện thông qua NuGet.
Đối với những người khác, đừng quên jquery.unobtrusive-ajax lib cần thiết cho điều này. – TSmith
Tôi đã tạo một dự án trong VS 2013, MVC5, tôi có Microsoft jQuery Unobtrusive Ajax, thông qua NuGet, nhưng nó không hoạt động, nó sẽ mở ra trong một cửa sổ mới: (Điều này được sử dụng để làm việc trong MVC4. Suy nghĩ? –
@ Html.Partial ("_ patientList") bạn nhận được một lỗi rằng quan điểm này phải có IEnumerable
Bên cạnh những bài hướng dẫn trước đó, tôi đã phải cài đặt gói Microsoft.jQuery.Unobtrusive.Ajax và thêm vào xem dòng sau
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
Tất cả này làm việc :)
Mẫu
public partial class ClientMessage
{
public int IdCon { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
Bộ điều khiển
public class TestAjaxBeginFormController : Controller{
projectNameEntities db = new projectNameEntities();
public ActionResult Index(){
return View();
}
[HttpPost]
public ActionResult GetClientMessages(ClientMessage Vm) {
var model = db.ClientMessages.Where(x => x.Name.Contains(Vm.Name));
return PartialView("_PartialView", model);
}
}
Xem index.cshtml
@model projectName.Models.ClientMessage
@{
Layout = null;
}
<script src="~/Scripts/jquery-1.9.1.js"></script>
<script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>
<script>
//\\\\\\\ JS retrun message SucccessPost or FailPost
function SuccessMessage() {
alert("Succcess Post");
}
function FailMessage() {
alert("Fail Post");
}
</script>
<h1>Page Index</h1>
@using (Ajax.BeginForm("GetClientMessages", "TestAjaxBeginForm", null , new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "SuccessMessage",
OnFailure = "FailMessage" ,
UpdateTargetId = "resultTarget"
}, new { id = "MyNewNameId" })) // set new Id name for Form
{
@Html.AntiForgeryToken()
@Html.EditorFor(x => x.Name)
<input type="submit" value="Search" />
}
<div id="resultTarget"> </div>
Xem _PartialView.cshtml
@model IEnumerable<projectName.Models.ClientMessage >
<table>
@foreach (var item in Model) {
<tr>
<td>@Html.DisplayFor(modelItem => item.IdCon)</td>
<td>@Html.DisplayFor(modelItem => item.Name)</td>
<td>@Html.DisplayFor(modelItem => item.Email)</td>
</tr>
}
</table>
- 1. Làm thế nào để sử dụng nhà cung cấp SimpleMemberShip trong Asp.net MVC 4 ứng dụng
- 2. ASP.NET MVC 4 AJAX Gửi Form không làm việc
- 3. Asp.net MVC 4 làm thế nào để sử dụng WebSecurity.createUserAndAccount với lĩnh vực tùy chỉnh
- 4. Localization trong ASP.NET MVC 4 sử dụng App_GlobalResources
- 5. Làm cách nào để sử dụng các ràng buộc trong ASP.net MVC 4 RouteConfig.cs?
- 6. Thực hiện một yêu cầu AJAX bằng cách sử dụng $ .ajax trong MVC 4
- 7. ASP.NET AJAX vs jQuery trong ASP.NET MVC
- 8. MVC: làm thế nào để ajax?
- 9. ASP.Net MVC 4 Gói
- 10. làm thế nào để biết nếu yêu cầu là ajax trong asp.net MVC?
- 11. Làm thế nào để cập nhật thực thể EF 4 trong ASP.NET MVC 3?
- 12. Làm thế nào để bảo vệ chống lại CSRF theo mặc định trong ASP.NET MVC 4?
- 13. Làm thế nào để sử dụng nhiều lựa chọn trong mvc 4?
- 14. ASP.NET MVC AJAX Calendar
- 15. ASP.NET MVC AJAX với jQuery
- 16. DotNetOpenAuth Simple Demo, MVC & Razor
- 17. Asp.net MVC 4, Làm thế nào làm cho Thầy chi tiết trong hình thức tương tự
- 18. Làm thế nào để sử dụng định tuyến ASP.NET 4 WebForms với chuỗi truy vấn?
- 19. Làm thế nào để sử dụng Autofac trong một ứng dụng web 3 lớp (ASP.NET MVC)?
- 20. MVC MiniProfiler với ASP.NET MVC 4
- 21. Làm thế nào để kích hoạt Role Manager với SimpleMembership trên ASP.NET MVC 4
- 22. ASP.NET MVC 2 - Làm cách nào để sử dụng DropDownListFor?
- 23. Ghi đè thành viên ASP.NET trong ASP.NET MVC 4
- 24. ASP.NET MVC 4 phá vỡ ASP.NET MVC 3 dự án
- 25. Làm thế nào để làm múi giờ trong ASP.NET MVC?
- 26. Sử dụng công cụ định tuyến để gửi biểu mẫu trong ASP.NET MVC Preview 4
- 27. như thế nào MVC 4 Login/SimpleMembership làm việc
- 28. asp.net MVC Web API VS asp.net MVC 4 & MVC 3 ứng dụng internet
- 29. Làm thế nào để sử dụng nguồn lực toàn cầu biên soạn trong ASP.NET MVC
- 30. Làm thế nào để sử dụng ASP.Net MVC Xem bên trong WebForms .aspx trang?
Hãy xem một số mã. – X3074861X
Kiểm tra liên kết này: http://stackoverflow.com/questions/5410055/using-ajax-beginform-with-asp-net-mvc-3-razor –