با سلام من یک پروژه در حال ساخت دارم و در ایت پروژه من در چندین جای مختلف از ajax استفاده کرده و به راحتی جواب گرفتم البته همه این موارد من فقط یک مقدار را با ajax به کنترلر ارسال میکردم در یکی از view ها من کل فرم رو از طریق کد زیر به کنترلر ارسال میکنم
$("#btnReplyMessage").click(function () { $.ajax({ url: $('replyForm').attr('action'), contentType: 'application/html; charset=utf-8', type: 'GET', data: $('#replyForm').serialize(), dataType: 'html' }).success(function (result) { $('#chatTitle').val(title); $('#chatDetails').html(result); $('#Notes').val(''); }).error(function (xhr, status) { alert('خطا در دریافت اطلاعات!!! لطفا دوباره تلاش نمایید.'); }); return false; });
در قسمت کنترلر هم این فرم را با کد زیر دریافت میکنم
public ActionResult CreateAjax([Bind(Include = "ChatId,AdvertiseId,Notes")] CreateMessageModels model) { AdvertiseModels advertise = db.Advertises.Find(model.AdvertiseId); if (advertise != null) { string userId = User.Identity.GetUserId(); ChatModels chat = db.Chats.Find(model.ChatId); chat.Update = DateTime.Now; db.Entry(chat).State = EntityState.Modified; MessageModels message = new MessageModels() { Notes = model.Notes, Sender = userId, Status = false, Time = DateTime.Now, ChatId = chat.ChatId }; db.Messages.Add(message); db.SaveChanges(); return PartialView("_MessageDetailsPartial", chat); } return RedirectToAction("Index"); }
کل فرم هم به صورت زیر است
<form action="~/Message/CreateAjax" id="replyForm" role="form"> <input type="hidden" value="@Model.ChatId" name="ChatId" id="ChatId" /> <input type="hidden" value="@Model.AdsId" name="AdvertiseId" id="AdvertiseId" /> <textarea name="Notes" id="Notes" class="form-control content-group" rows="3" cols="1" placeholder="متن پیام..."></textarea> <div class="row"> <div class="col-xs-6"> </div> <div class="col-xs-6 text-right"> <button type="submit" id="btnReplyMessage" class="btn bg-primary btn-labeled btn-labeled-right"><b><i class="icon-circle-left2"></i></b> ارسال</button> </div> </div> </form>
مشکل من اینجاست که کنترلر بعد از انجام پروسه patrial view رو به من نشون میده و مقدارش رو به تابع ajax باز نمیگردونه
با سلام
دوست عزیز شما نوع دکمه ارسال از نوع submit رو به button تغییر بده ، بعد در کد ajax در پر کردن url نحوه فراخوانی رو اشتباه انجام دادی و # رو برای انتخاب فراموش کردی بزاری - این دوتا کار رو انجام بده ببین مشکلت حل نمیشه
برای این که result را دریافت کنید به جای success از done استفاده کنید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)