ASP.NET MVC CORE 2.0 将数据从 DOM 发送到 SQL 服务器

ASP.NET MVC CORE 2.0 sending data from DOM to SQL Server

我需要一个策略。

在网络表单中,我在 <asp:UpdatePanel> 中使用 <asp:HiddenField> 从 DOM 到 SQL 服务器来回发送数据。

这种方法的一大特点是避免了页面刷新(!重要

在 ASP.NET MVC CORE 2.0 中,没有 <asp:UpdatePanel>,我知道我必须在视图和控制器之间来回发送数据。

我在哪里可以找到一个工作示例,对于 ASP.NET MVC Core 2.0 的初学者来说足够简单?我为此工作了一整天,到目前为止,我所看到的一切都是大量的样本,比旧的 <asp:HiddenField> > <asp:UpdatePanel>.

复杂得多

我假设您希望在不重新加载整个屏幕的情况下使用新信息更新部分屏幕。

以下jQuery JavaScript 代码是调用控制器操作并返回一些数据然后将其填充到 DOM 元素中的示例 class结果:

   $('#CategoryID').on("change", function () {
        var categoryId = $('#CategoryID').val();
        $.get("/Products/UpdateSubCategories/" + categoryId , function (data) {
            console.log("Data: " + data);
            $('.result').html(data);
        });
    })

此 JavaScript 在 ID 为 CategoryID 的元素更改时触发。

这是控制器操作的示例:

   [HttpGet]
    public async Task<IActionResult> UpdateSubCategories(int id)
    {
        if (id==0)
        {
            NotFound();
        }
        ViewData["SubCategoryId"] = new SelectList(_context.SubCategories.Where(s => s.CategoryId == id).OrderBy(s => s.SubCategoryName), "Id", "SubCategoryName");
        return PartialView();

    }

Note 还创建了一个局部视图,用于为 Select 列表创建所需的 HTML。

@model Namespace.Models.Products


<div class="form-group">
    <label asp-for="SubCategoryId" class="control-label"></label><span style="color:red"> *</span>
    <select asp-for="SubCategoryId" class="form-control" asp-items="ViewBag.SubCategoryId">
        <option value="">-</option>
    </select>
    <span asp-validation-for="SubCategoryId" class="text-danger"></span>
</div>