Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用弹出窗体将新数据创建到数据库中_C#_Jquery_Ajax_Asp.net Core_Asp.net Core Mvc - Fatal编程技术网

C# 无法使用弹出窗体将新数据创建到数据库中

C# 无法使用弹出窗体将新数据创建到数据库中,c#,jquery,ajax,asp.net-core,asp.net-core-mvc,C#,Jquery,Ajax,Asp.net Core,Asp.net Core Mvc,我试图创建一个弹出系统,在数据库中创建新数据。当我在索引视图中单击“创建”时,我会发现一个弹出表单。但当我单击“保存”进行数据保存时,它不会起任何作用。突然,它开始工作并将数据保存到数据库中。但它只发生过一次。但我不明白为什么它不能顺利运行 这是我的密码: 模型 控制器: namespace Practise.Controllers { public class CategoryController : Controller { private Applicati

我试图创建一个弹出系统,在数据库中创建新数据。当我在索引视图中单击“创建”时,我会发现一个弹出表单。但当我单击“保存”进行数据保存时,它不会起任何作用。突然,它开始工作并将数据保存到数据库中。但它只发生过一次。但我不明白为什么它不能顺利运行

这是我的密码:

模型

控制器:

namespace Practise.Controllers
{
    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 IActionResult Create()
        {

            Category ca = new Category();
            return PartialView("_CreatePartial", ca);
            //return View();
        }



        [HttpPost]
        public IActionResult Create(Category ca)
        {
            _db.Category.Add(ca);
            _db.SaveChanges();
            return PartialView("_CreatePartial", ca);

        }

    }
}
Index.cshtml

@model IEnumerable<Practise.Models.Category>

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

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


<button type="button" class="btn btn-primary" data-toggle="ajax-model" data-target="#addEmployee" data-url="@Url.Action("Create")">Create</button>
</br></br>
<table class="table">
    <thead>
        <tr>
            <th>
                @Html.DisplayNameFor(model => model.Id)
            </th>
            <th>
                @Html.DisplayNameFor(model => model.CategoryName)
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Id)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.CategoryName)
                </td>
                <td>
                    <partial name="_ButtonPartial" model="@item.Id" />
                </td>
            </tr>
        }
    </tbody>
</table>
@section scripts{
    <script src="//cdn.jsdelivr.net/npm/alertifyjs@1.13.1/build/alertify.min.js"></script>

    <script type="text/javascript">
        $(function(){
            var save = '@TempData["save"]'

            if (save!= null) {
                alertify.success(save);
            }

        })

    </script>

}

我的输出:


当我按下“保存”按钮时,我希望它将数据保存到DB。但它不起作用。

我必须更改类似“保存数据”的内容:

  public IActionResult Create()
        {

            //Category ca = new Category();
            //return PartialView("_CreatePartial", ca);
            return View();
        }



        [HttpPost]
        public IActionResult Create(Category ca)
        {
            _db.Category.Add(ca);
            _db.SaveChanges();
            return RedirectToAction("Index");

        }
创建视图:

@model Practise.Models.Category
@{
    ViewData["Title"] = "Create";
}

<h1>Create</h1>

    <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 asp-action="Create" method="post">
                        <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>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
                            @*<button type="button" class="btn btn-primary" data-save="modal">Save</button>*@
                            <input type="submit" class="btn btn-primary" value="Submit"/>
                        </div>
                    </form>
                </div>
               

            </div>
        </div>
    </div>



@model practice.Models.Category
@{
ViewData[“标题”]=“创建”;
}
创造
添加类别
x
接近
@*拯救*@

然后成功保存数据。

根据您的描述和代码,它在我这边运行良好。你能告诉我这个类别的Id是否是自动缩放的吗?如果id不是自动缩放,则意味着它将始终使用相同的id 0。@BrandoZhang我不理解“自动缩放”的含义。我将给您提供代码来检查这一点。请告诉我我将给您提供什么代码来检查这一点。抱歉,我的意思是id已在sql server中启用了标识。
$(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');
        })
    })
    PlaceHolderElement.on('click', '[data-save="modal"]', function (event) {

        var form = $(this).parents('.modal').find('form'); 
          var actionUrl = form.attr('action');
          var sendData = form.serialize();
            $.post(actionUrl, sendData).done(function (data) {
            PlaceHolderElement.find('.modal').modal('hide');
        })
    })
})

  public IActionResult Create()
        {

            //Category ca = new Category();
            //return PartialView("_CreatePartial", ca);
            return View();
        }



        [HttpPost]
        public IActionResult Create(Category ca)
        {
            _db.Category.Add(ca);
            _db.SaveChanges();
            return RedirectToAction("Index");

        }
@model Practise.Models.Category
@{
    ViewData["Title"] = "Create";
}

<h1>Create</h1>

    <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 asp-action="Create" method="post">
                        <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>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
                            @*<button type="button" class="btn btn-primary" data-save="modal">Save</button>*@
                            <input type="submit" class="btn btn-primary" value="Submit"/>
                        </div>
                    </form>
                </div>
               

            </div>
        </div>
    </div>