AJAX(异步JavaScript和XML)是一种通过客户端和服务器之间的异步数据交换来创建无缝交互式网站的技术。 AJAX有助于与服务器进行通信或部分页面更新,而无需传统的页面刷新。
我在项目中配置 CRUD 时遇到了问题。视图看不到来自控制器的方法。我使用了主视图和部分视图。 主视图代码: 我在项目中配置 CRUD 时遇到了问题。视图看不到来自控制器的方法。我使用了主视图和部分视图。 主视图代码: <div class="container col-md-10 m-auto" style="width: auto;"> <div class="d-flex align-items-center justify-content-center"> <div class="btn-group" role="group" aria-label="Basic example"> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Star')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/star.png');"></div> </button> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Planet')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/planet.png');"></div> </button> <button type="button" class="btn btn-secondary btn-with-image" onclick="sendObjectType('Moon')"> <div class="div-with-image" style="background-image: url('../Graphics/StaticImages/moon.png');"></div> </button> </div> </div> </div> <div id="partialContainer"> </div> <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> <script> function sendObjectType(objectType) { $.ajax({ type: "POST", url: "/Encyclopedia/Create", data: { objectType: objectType }, success: function (partialView) { $("#partialContainer").html(partialView); }, error: function (error) { console.error(error); } }); } </script> 部分视图代码: @model SolarSystemEncyclopedia.Models.Planet <div style="margin-top: 2%; margin-bottom: 2%;"> <div class="container-fluid col-md-10 m-auto"> <div class="row container-fluid d-flex align-items-center justify-content-center"> <div class="col-md-6 blue-div"> <h1>Create planet</h1> <form asp-controller="Encyclopedia" asp-action="CreatePartial" method="post" enctype="multipart/form-data"> <div asp-validation-summary="ModelOnly" class="text-danger"></div> @Html.AntiForgeryToken() <div class="form-group mb-3"> <label asp-for="Name" class="control-label"></label> <input asp-for="Name" class="form-control main-inputs" /> <span asp-validation-for="Name" class="text-danger"></span> </div> <div class="form-group mb-3"> <label asp-for="Description" class="control-label"></label> <input asp-for="Description" class="form-control main-inputs" /> <span asp-validation-for="Description" class="text-danger"></span> </div> <div class="form-group mb-3"> <input type="submit" value="CreateMain" class="btn btn-primary" /> </div> <div> <a asp-action="Index">Back to List</a> </div> </form> </div> </div> </div> </div> 在控制器中我有以下方法: [HttpGet] public async Task<IActionResult> Create() { return View(); } [HttpPost] public IActionResult Create(string objectType) { switch (objectType) { case "Star": return PartialView("_CreateStarPartial"); case "Planet": return PartialView("_CreatePlanetPartial"); case "Moon": return PartialView("_CreateMoonPartial"); default: return BadRequest(); } } [HttpPost] public async Task<IActionResult> CreatePartial<T>(T obj) where T : CosmicObject { if (ModelState.IsValid == true) { if (obj is Planet planet) { var star = _context.Star.FirstOrDefault(s => s.Id == planet.MainStarId); planet.MainStar = star; planet.Density = Double.Parse(planet.StringDensity); } if (obj.MainImage != null) { string uploadsFolder = Path.Combine(_appEnvironment.WebRootPath, "Graphics", "ObjectImages", obj.Name); string uniqueFileName = obj.Name + "MainImage.jpg"; string filePath = Path.Combine(uploadsFolder, uniqueFileName); if (!Directory.Exists(uploadsFolder)) { Directory.CreateDirectory(uploadsFolder); } using (var fileStream = new FileStream(filePath, FileMode.Create)) { await obj.MainImage.CopyToAsync(fileStream); } } _context.Add(obj); await _context.SaveChangesAsync(); return RedirectToAction(nameof(Index)); } return View(obj); } 第一种方法打开主视图,第二种方法打开部分视图,第三种方法应在提交表单后打开。 我更改了方法的名称,尝试向视图中的表单添加不同的标签,但没有任何效果。形式表明应该调用 post 方法,但即使 post 方法和 get 方法同名,由于某种原因仍会调用 get 方法。 网上查了一下,发现可能和ajax有关,但是没找到修复的办法。 我相信您的AJAX电话不完整。另外为什么是 Create GET 方法 async ?您可以参考以下代码更改,希望能解决您的问题: 将您的 AJAX 通话更改为: <script> function sendObjectType(objectType) { var param = { objectType: objectType}; $.ajax({ type: "POST", url: '@Url.Action("Create", "Encyclopedia")', data: { "json": JSON.stringify(param)}, dataType: "html", success: function (partialView) { $("#partialContainer").html(partialView); }, error: function (error) { console.error(error); } }); } </script> 你的 Controller 方法将如下所示: [HttpGet] public IActionResult Create() { return View(); } [HttpPost] public IActionResult Create(string json) { var jsondata = JsonConvert.DeserializeObject<dynamic>(json); string objectType = Convert.ToString(jsondata["objectType"]); switch (objectType) { case "Star": return PartialView("_CreateStarPartial"); case "Planet": return PartialView("_CreatePlanetPartial"); case "Moon": return PartialView("_CreateMoonPartial"); default: return BadRequest(); } }
jQuery Color Changer - Ajax 保存未运行 [已关闭]
我在使用 AJAX 时遇到了很多麻烦。我想要 ajax 改变 div 的颜色。首先是直接的,确实如此。然后它应该将其保存在数据库中,但事实并非如此。 问题是这样的:它确实......
jQuery Color Changer - Ajax 保存未运行 [已关闭]
我在使用 AJAX 时遇到了很多麻烦。我想要 ajax 改变 div 的颜色。首先是直接的,确实如此。然后它应该将其保存在数据库中,但事实并非如此。 问题是这样的:它确实......
我有一个网络应用程序,它将一些数据从js脚本发送到php服务器,然后将其插入mysql数据库。我还需要通知所有其他客户端数据已发送并将其发送到......
从c#列表中删除多余的对象<object>从asp.net Webform返回json响应
我是asp.net webform 的新手。我有很多问题,几乎我从 StackOverflow 得到了解决方案。但现在我面临一个问题,无法得到任何想要的解决方案,所以,我正在写这个问题......
在我的 Django 项目中,我有一个基本视图,我在其中传递 Article 模型的所有实例,然后使用 for 循环将它们显示在 HTML 模板中。我也有一个主题模型,所以我显示所有主题...
我正在尝试完成一个项目,该项目要求我使用 Geonames API 来显示用户在网页搜索框中输入的任何国家/地区的信息。控制台中的 API 仅显示为空...
如何在控制器中的 laravel store 功能中进行保存和打印?
我有一个执行保存和打印的按钮。我已经可以在 store() 函数中进行保存,但不能进行打印。当我说打印时,它意味着打开所传递数据的打印对话框。 这是我的屁股...
我有几张带有物品的卡片。 我为每张卡添加了一个计数器和一个“添加到购物车”按钮。 我想使用 ajax 将项目计数传递到 django 视图中。 但我不知道如何从 c 传递变量...
我有一个网站,我可以在其中上传 .xlsx 文件,其中包含我的数据库的一些信息行。我阅读了 laravel-excel 的文档,但看起来它只适用于进度...
如何使用 PHP 从 SQL Server 填充 HTML 表单字段
我正在尝试从 SQL 服务器获取数据并将它们转储到我的 HTML 表单中。例如,我在 HTML 表单中输入一个名字,我想从数据库中转储该名字的所有信息(姓氏,
我使用ajax()调用了ASP.net 4.0 Web服务。我可以在本地获取错误消息,但是当我部署到服务器时,错误被 500 内部服务器错误替换,并显示消息“There was an
我读了几篇文章讨论一些类似的问题,但我还没有做到这一点。 我正在对“Account/ExternalLogin”执行 ajax,它会生成 ChallengeResult 并启动流程...
我的代码有一些问题。当我输入正确的用户名和密码时,它无法重定向到index.php。 我想使用窗口进行 php 文件侧导航而不是 js 侧导航。
无法从自定义 Drupal 8 Webform Handler 中的 $form_state 获取值
我正在 Drupal 8 中工作,正在构建一个自定义 WebformHandler。我有一个带有 ajax 组件的元素。我似乎无法通过 ajax 中的 $form_state->getValue('key') 访问任何表单值
如何在使用 AJAX 调用更新选项列表后触发 easyAdmin 自动完成选择表单上的更改?
我在 Symfony 5.3.16 项目上使用 EasyAdmin 3.5。 我开发了一个自定义的 easyAdmin 页面,其中包含使用选择字段的 symfony 表单。 这些字段被清空并重新填充来自 f...
我有一个 MVC 视图,上面有许多按钮(篮子中的每个项目呈现 2 个按钮)... - 我有一个 MVC 视图,上面有许多按钮(篮子中的每个项目呈现 2 个按钮)... <button class="pbbg" id="ProductMinus_161637" type="button">-</button> <button class="pbbg" id="ProductPlus_161637" type="button">+</button> (他们都有一个onclick事件) 当按下这些按钮中的任何一个时,我想禁用每个产品的所有按钮,直到购物篮完成更新。 单击事件调用 JavaScript 函数,该函数又进行 Ajax 调用。在这篇post之后,我尝试做的第一件事就是禁用所有按钮...... $("input[type=button]").attr("disabled", "disabled"); 然后在 Ajax 调用返回后重新启用它们.... $("input[type=button]").removeAttr("disabled"); 我没有收到任何错误,但按钮没有被禁用。 我哪里出错了? 您的选择器错误。您应该使用 input.. 伪选择器,而不是 :button 选择器。 您可以使用 :button 选择器选择所有按钮。 $(':button').prop('disabled', true); // Disable all the buttons 启用所有按钮: $(':button').prop('disabled', false); // Enable all the button 编辑 如果您只想禁用 id 以 Product 开头的按钮,请使用: $('button[id^="Product"]') 如果有人正在寻找普通的 JavaScript 解决方案: const buttons = document.getElementsByTagName("button"); for (const button of buttons) { button.disabled = true; } 可能是因为您没有使用 input 标签,所以您使用的是直接 button 标签。试试$("button").attr("disabled", "disable")。 您需要使用button选择器。尝试像这样prop $('button').prop('disabled', true); //Vanilla JavaScript solution. // Disable all buttons const allBtn = document.querySelectorAll('button') allBtn.forEach((button)=>{ button.disabled = true; }); 如果你想试试这个。 const 按钮 = document.getElementById("button"); Buttons.setAttribute('禁用', true);
Laravel Livewire 和 Bootstrap 表单的重新加载问题
当我使用任何 Javascript 表单时,我都遇到了 Livewire 问题。使用以下形式:https://bbbootstrap.com/snippets/multi-step-form-wizard-30467045(虽然我尝试了其他形式并且很满意...
如何在页面加载期间根据从.net core中的数据库获取的值选择下拉值?
我在 .cshtml 文件中修复了下拉值。 ``** 是的 不 像这样问我.. 我将这些值保存到数据库中,并在页面加载期间获取这些值并分配到...