मैं एएसपीनेट एमवीसी में नया हूं और मैंने Ajax.BeginForm
पर शोध किया लेकिन जब मैं कोड लागू करता हूं तो यह काम नहीं करता है। क्या आप व्यू, कंट्रोलर, मॉडल के साथ Ajax.Beginform
के साथ बहुत सरल उदाहरण साझा कर सकते हैं? धन्यवाद।Asp.net एमवीसी 4 में सरल अजाक्स Beginform का उपयोग कैसे करें?
उत्तर
सरल उदाहरण: टेक्स्टबॉक्स और खोज बटन के साथ फ़ॉर्म।
यदि आप textbox
में "नाम" लिखते हैं और फॉर्म सबमिट करते हैं, तो यह आपको तालिका में "नाम" वाले रोगियों को लाएगा।
दृश्य:
@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);
}
और यह भी रूप में TSmith टिप्पणी में कहा, नहींं NuGet के माध्यम से jQuery विनीत अजाक्स पुस्तकालय स्थापित करने के लिए भूल जाते हैं।
दूसरों के लिए, jquery.unobtrusive-ajax lib को न भूलें इसके लिए। – TSmith
मैंने वीएस 2013, एमवीसी 5 में एक प्रोजेक्ट बनाया है, मेरे पास माइक्रोसॉफ्ट jQuery अनोबट्रूसिव अजाक्स है, नूगेट के माध्यम से, लेकिन यह काम नहीं करता है, यह एक नई विंडो में खुलता है :(यह एमवीसी 4 में काम करता था। विचार? –
यदि आप जोड़ते हैं @ एचटीएमएल। पार्टियल ("_ patientList") आपको एक त्रुटि मिलती है कि इस दृश्य में IENumerable
पिछले पोस्ट निर्देश इसके अलावा, मैं पैकेज Microsoft.jQuery.Unobtrusive.Ajax स्थापित करें और निम्न पंक्ति
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
दृश्य में जोड़ने के लिए किया था सभी इस कार्य :)
मॉडल
public partial class ClientMessage
{
public int IdCon { get; set; }
public string Name { get; set; }
public string Email { get; set; }
}
नियंत्रक
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);
}
}
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>
देखें _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. एमवीसी 4 में एकाधिक चयन का उपयोग कैसे करें?
- 2. Asp.Net MVC3 एमवीसी 4 अपग्रेड टूल में?
- 3. asp.net अजाक्स
- 4. Asp.Net एमवीसी थीम्स, कैसे करें?
- 5. Asp.net एमवीसी
- 6. एमवीसी 4 async ApiController में Task.Factory.StartNew का उपयोग करें?
- 7. jQuery अजाक्स सरल कॉल
- 8. ASP.NET MVC 4
- 9. सरल अजाक्स/PHP डीबगिंग
- 10. Asp.net एमवीसी
- 11. Asp.Net MVC Ajax.BeginForm अजाक्स
- 12. मैं एएसपीनेट एमवीसी 4 में jquery का उपयोग कैसे करूं?
- 13. ASP.NET अजाक्स CalendarExtender SelectedDate मूल्य
- 14. BeginForm शैली डिस्पोजेबल एचटीएमएल हेल्पर
- 15. एएसपीनेट एमवीसी 4 में डोमेन संचालित विकास का प्रभावी ढंग से उपयोग कैसे करें?
- 16. एमवीसी 4 रेजर एक फोरैच लूप अपडेट करने के लिए अजाक्स रूपों का उपयोग कर
- 17. अजाक्स पोस्ट एएसपीएनटी एमवीसी 3
- 18. एक नियंत्रक से यूजर प्रोफाइल का उपयोग करें एमवीसी 4
- 19. ASP.NET MVC अजाक्स
- 20. ASP.net/ASP.net एमवीसी
- 21. एमवीसी 4
- 22. एमवीसी 4
- 23. एमवीसी 4 अजाक्स। एक्शन लिंक टी काम जीता
- 24. ASP.NET अजाक्स क्लाइंट साइड ढांचे
- 25. Asp.net एमवीसी
- 26. एएसपी.नेट एमवीसी में जेनेरिक हैंडलर (एएसएचएक्स) का उपयोग कैसे करें?
- 27. ASP.NET MVC में संकलित वैश्विक संसाधनों का उपयोग कैसे करें
- 28. आरएक्सजेएस 5 - सरल अजाक्स अनुरोध
- 29. एमवीसी 4
- 30. कैसे asp.net MVC के 4
चलो कुछ कोड देखें। – X3074861X
इस लिंक को चेक करें: http://stackoverflow.com/questions/5410055/using-ajax-beginform-with-asp-net-mvc-3-razor –