在 ASP.NET Core 中使用 ajax 向控制器发送数据
Posted
技术标签:
【中文标题】在 ASP.NET Core 中使用 ajax 向控制器发送数据【英文标题】:Sending data to controller with ajax in ASP.NET Core 【发布时间】:2021-10-23 02:51:43 【问题描述】:我无法使用 ajax 将数据发送到控制器。变为“空”。请帮帮我。
我的 html 代码:
<div class="modal fade" id="sagTikMenuKategoriGuncelleModal" data-bs-backdrop="static">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header" style="font-weight: 600; color: rgb(157, 163, 173); background-color: rgb(248, 248, 248);">
<h5 class="modal-title">Kategori Alanı Güncelle</h5>
<button class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="col-md-12 pb-4 text-center kategoriAlanlariModalBodyDiv" style="font-weight: bold; color:rgb(168, 174, 185);">
<span>Kategori alanınınız adını buradan güncelleye bilirsiniz..</span>
</div>
<form class="needs-validation" novalidate id="sagTikMenuKategoriGuncelleModalForm">
<div class="row g-3">
<div class="col-md-12">
<label for="kategoriAlanGuncelleAdi" class="form-label">Kategori Alan Adı *</label>
<input id="kategoriAlanGuncelleAdi" type="text" class="form-control" placeholder="Kategori Alan Adı" required>
<div class="invalid-feedback">
Bu Alan Boş Geçilemez
</div>
</div>
</div>
<div class="modal-footer mt-3">
<button class="btn btn-secondary" type="submit" id="sagTikMenuKategoriGuncelleButonModal">Güncelle</button>
</div>
</form>
</div>
</div>
</div>
</div>
我的 jquery 代码:
var kategoriAlanGuncelleId;
var kategoriAlanGuncelleAd;
$(".urunKategorileriAlanAdlari > span").contextmenu(function ()
kategoriAlanGuncelleId = $(this).attr("id");
kategoriAlanGuncelleAd = $(this).text();
);
$("#sagTikMenuKategoriGuncelleButonModal").click(function ()
var kategoriAlanAdGuncel = new Object();
kategoriAlanAdGuncel.urunKategorileriKategoriAdi = $("#kategoriAlanGuncelleAdi").val();
kategoriAlanAdGuncel.urunKategorileriId = kategoriAlanGuncelleId;
var kategoriAlanGuncelAdres = "@Url.Action("kategoriAlanGuncelle", "kategoriAlanlari")";
$.ajax(
url: kategoriAlanGuncelAdres,
type: "POST",
data: kategoriAlanAdGuncel,
success: function (veri)
,
error: function (hata, ajaxoptions, throwerror)
alert("Hata :" + hata.status + " " + throwerror + " " + hata.responseText);
);
);
c#控制器:
[HttpPost]
public IActionResult kategoriAlanGuncelle(urunKategorileri mod)
if (mod == null)
return RedirectToAction("Kategoriler", "Home");
if (mod.urunKategorileriId == 0 || mod.urunKategorileriKategoriAdi == null)
return RedirectToAction("Kategoriler", "Home");
var veri = kategoriAlanlariServices.kategoriGuncelle(mod);
if (veri == 0)
return RedirectToAction("Kategoriler", "Home");
return RedirectToAction("Kategoriler", "Home");
我用“alert”检查了我在 jquery 中收到的数据。他们满了。但仍然空值进入控制器。我在jquery中创建的对象变量的导数和表的columns是一样的,没找到问题
【问题讨论】:
是打到success
回调还是error
回调?
C# asp.net 核心控制器没有获得价值。与成功或错误无关
@Bhtuhan,我的意思是jquery回调,是成功还是出错
另外,您如何以及在哪里记录控制器中的值?
我不知道。出于某种原因,它把我扔到了主页上。他给出的链接是:“localhost:5001/Admin?”
【参考方案1】:
尝试明确设置contentType
和datatype
例如。
contentType: 'application/json',
dataType: 'json',
【讨论】:
我试过了。不幸的是,该值再次为空。【参考方案2】:试试这个:
$.ajax(
url: kategoriAlanGuncelAdres,
type: "POST",
data: "mod": kategoriAlanAdGuncel ,
success: function (veri)
,
error: function (hata, ajaxoptions, throwerror)
alert("Hata :" + hata.status + " " + throwerror + " " + hata.responseText);
);
【讨论】:
很遗憾没有发生【参考方案3】:Alexander Solonik
和Chris Wong
的答案都是正确的。而且我还在我的本地检查了你的代码,它工作正常。而且我没有使用你关于模态的代码。
我不确定问题出在哪里,所以我只能给你一般性的建议。然后我确定问题可能出现在modal中的表单中,需要通过以下步骤来定位问题。
步骤
在modal外创建一个div,然后创建一个按钮点击事件。您可以将 urunKategorileri_Model 的值写为固定值。其他代码相同进行测试。
如果成功,则说明与modal有关。
按照以下步骤操作。
按F12,查看请求详情。
如果你得到 404,这意味着你的请求 url 是错误的。如果你得到 500,这意味着你的 webapp 运行时出现了一些错误。
如果你有 200 个,你可以调试你的 C# 代码。
【讨论】:
【参考方案4】:你的代码是真的,我只是复制了它,它可以工作,但我认为你的问题出在你的控制器类中,只是让你的属性数据类型像我的一样
public class urunKategorileri
public string urunKategorileriKategoriAdi get; set;
public int urunKategorileriId get; set;
我的 jquery 版本是 v3.5.1
【讨论】:
以上是关于在 ASP.NET Core 中使用 ajax 向控制器发送数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Razor 视图中使用 Ajax 进行 Asp.Net Core 表分页
在 ASP.NET CORE 表单中使用 AJAX 返回 JSON
如何在带有 ADO.NET 的 ASP.NET Core MVC 中使用 jQuery Ajax 自动完成