首页 > 解决方案 > jquery 弹出窗口在 asp.net core 2.2 中不起作用

问题描述

我正在尝试创建一个弹出表单来添加一些员工或类别。但是当我单击“创建”按钮时,它不起作用。

这是我的代码:

namespace EasyBay.Areas.Admin.Controllers
{
    [Area("Admin")]
    public class CategoryController : Controller
    {
        private ApplicationDbContext _db;

        public CategoryController(ApplicationDbContext db) //input parameter
        {
            _db = db;
        }

        public IActionResult Index()
        {
            return View(_db.Category.ToList());
        }



        [HttpGet]

        public ActionResult Create()
        {
            Category ca = new Category();
            return PartialView("_CatPartial", ca);

        }



        [HttpPost]
        [ValidateAntiForgeryToken]  //using for security purpose

        public async Task<IActionResult> Create(Category category)   //input parameter
        {
            if (ModelState.IsValid)
            {
                _db.Category.Add(category);
                await _db.SaveChangesAsync();
                TempData["save"] = "Product Type Save Successfully";  
                return RedirectToAction(nameof(Index));
            }

            return View(category);
        }
    }

索引.cshtml

@model IEnumerable<EasyBay.Models.Category>

@{
    ViewData["Title"] = "Index";
}

<div id="PlaceHolderHere"></div>

@*<button type="button" class="btn" id="c-btn" data-url="@Url.Action("Create")">Open Contact Form</button>*@
<button type="button" class="btn btn-primary" data-toggle="ajax-model" data-target="#addEmployee"  data-url= "@Url.Action("Create")">Create</button>

<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Id)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.CategoryName)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>

部分视图

@model Category

<div class="modal fade" id="#addEmployee">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="#addEmployeeLabel">Add Category</h4>
                <button type="button" class="close" data-dismiss="modal">
                    <span>x</span>
                </button>
            </div>
            <div class="modal-body">
                <form action="Create">
                    <div class="form-group">
                        <label asp-for="CategoryName"> </label>
                            <input asp-for="CategoryName" class="form-control" />
                       <span asp-validation-for="CategoryName" class="text-danger"></span>
                    </div>
                </form>
            </div>

            <div class="modal-footer">
                <button type="button" data-dismiss="modal" class="btn btn-primary">Close</button>
                <button type="button" data-save="modal" class="btn btn-primary">Save</button>
            </div>
        </div>
    </div>
</div>

js(网站.js)

$(function () {
    var PlaceHolderElement = $('#PlaceHolderHere');
    $('.button[data-toggle="ajax-model"]').click(function (event) {
        var url = $(this).data('url');
        $.get(url).done(function (data) {

            PlaceHolderElement.html(data);

            PlaceHolderElement.find('.modal').modal('show');



        })
    })
    
})

输出: 在此处输入图像描述

在此处输入图像描述

在这里,我还展示了我创建 PartialView 的位置。当我单击“创建”按钮时,什么也不做。我不明白哪里错了。我是初学者,请帮助任何人。

标签: javascriptjqueryajaxasp.net-coreasp.net-core-mvc

解决方案


$(function () {
    var PlaceHolderElement = $('#PlaceHolderHere');
    $('button[data-toggle="ajax-model"]').click(function (event) {
        var url = $(this).data('url');
        $.get(url).done(function (data) {

            PlaceHolderElement.html(data);

            PlaceHolderElement.find('.modal').modal('show');



        })
    })
    
})


推荐阅读