Привет, у меня проблема с отправкой формы.Я добавляю форму для редактирования на той же странице, где у меня есть форма для добавления сообщения.Поэтому, когда я добавляю форму редактирования с помощью ajax, я удаляю форму добавления сообщения, поэтому проблема в том, что форма редактирования сообщения не отправляется, а всегда отправляет форму добавления сообщения.Я надеюсь, что вы понимаете вопрос, и я приложил свой код, пожалуйста, просмотрите его.
Добавить новую форму сообщения
Эта форма уже в поле зрения
@model RentalServices.Models.exchangeViewModel
@foreach(var item in Model.PostListByUser)
{
<button class="btn btnInfo" value="@item.PostID" onclick="editExchangePost(this)">Edit</button>
}
<div class = "exRightSide">
<form id="excahgneFormID" method="post" enctype="multipart/form-data">
<h3>Exchange </h3>
<div class="form-group">
@Html.LabelFor(model => model.Poster.Title, new { @class = "" })
@Html.TextBoxFor(model => model.Poster.Title, new { @class = "form-control", placeholder = "Post title", id = "Title", Name = "Title" })
@Html.ValidationMessage("Title", new { @class = "text-danger" })
</div>
<div class="img-gallery">
<div class="img-wrapper">
<p>Image 1</p>
<div class="img-box">
<input type="file" name="thumb" class="file-style" onchange="readURL(this)" onmousemove="addorRemove(this)" />
<img src="~/Content/Assets/choose-image.png" alt="your image" />
</div>
</div>
<div class="img-wrapper">
<p>Image 2</p>
<div class="img-box">
<input type="file" name="thumb" class="file-style" onchange="readURL(this)" onmousemove="addorRemove(this)" />
<img src="~/Content/Assets/choose-image.png" alt="your image" />
</div>
</div>
</div>
<button type="submit" id="exchangePost" class="exchangeSubmitBtn">Post</button>
</form>
</div>
PartialView для редактирования сообщения
Это приложенная форма
@model RentalServices.Models.exchangeViewModel
<form id="editExcahgneFormID" method="post" enctype="multipart/form-data">
<h3>Edit Exchange </h3>
@Html.HiddenFor(model => model.Poster.PostID , new { Name = "PostID"})
<div class="form-group">
@Html.LabelFor(model => model.Poster.Title, new { @class = "" })
@Html.TextBoxFor(model => model.Poster.Title, new { @class = "form-control", placeholder = "Post title", id = "Title", Name = "Title" })
@Html.ValidationMessage("Title", new { @class = "text-danger" })
</div>
<div class="img-gallery">
<div class="img-wrapper">
<p>Image 1</p>
<div class="img-box">
<input type="file" name="thumb" class="file-style" onchange="readURL(this)" onmousemove="addorRemove(this)" />
<img src="~/Content/Assets/ExgPhotos/@item.FullImage" alt="your image" />
</div>
</div>
<div class="img-wrapper">
<p>Image 2</p>
<div class="img-box">
<input type="file" name="thumb" class="file-style" onchange="readURL(this)" onmousemove="addorRemove(this)" />
<img src="~/Content/Assets/ExgPhotos/@item.FullImage" alt="your image" />
</div>
</div>
</div>
<button type="submit" id="exchangePost" class="exchangeSubmitBtn">Post</button>
</form>
Ajax-код
function editExchangePost(btn)
{
var editID = $(btn).val();
alert(editID)
$.ajax({
type: 'get',
url: "/Exchange/editExchangePost",
data: { 'id': editID },
success: function (response)
{
$('#excahgneFormID').remove();
$(".exRightSide").append(response);
},
});
}
$("#editExcahgneFormID").on('submit', function (e) {
e.preventDefault();
var ok = $("#editExcahgneFormID").valid();
if (ok) {
var formdata = new FormData($('#editExcahgneFormID').get(0));
$.ajax({
type: 'post',
url: '/Exchange/editExchangePost',
data: formdata,
processData: false,
contentType: false,
success: function (response) {
}
})
}
})
// submitting this form
$("#excahgneFormID").on('submit', function (e) {
e.preventDefault();
var ok = $("#excahgneFormID").valid();
if (ok) {
var formdata = new FormData($('#excahgneFormID').get(0));
$.ajax({
type: 'post',
url: '/Exchange/postExchangeAd',
data: formdata,
processData: false,
contentType: false,
success: function (response) {
}
})
}
})
Контроллер
public ActionResult editExchangePost(int id)
{
exchangeViewModel viewModel = new exchangeViewModel();
viewModel.Poster = DB.Posters.Where(x => x.PostID == id).FirstOrDefault();
viewModel.ExchangeImageList = DB.ExchangeImageGalleries.Where(x => x.PostIDFK == id).ToList();
return PartialView("_editExchangePostPartialView" , viewModel);
}
[HttpPost]
public ActionResult editExchangePost(Poster post , IEnumerable<HttpPostedFileBase> thumb , ExchangeImageGallery images)
{
// other operations
return View()
}
[HttpPost]
public ActionResult postExchangeAd(Poster post , IEnumerable<HttpPostedFileBase> thumb , ExchangeImageGallery images)
{
// other operations
return View();
}