Приложенная форма не отправляет Ajax asp.net mvc - PullRequest
0 голосов
/ 27 сентября 2019

Привет, у меня проблема с отправкой формы.Я добавляю форму для редактирования на той же странице, где у меня есть форма для добавления сообщения.Поэтому, когда я добавляю форму редактирования с помощью 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...