asp.net mvc核心的重复条目

uxh89sit  于 2024-01-09  发布在  .NET
关注(0)|答案(3)|浏览(156)

我想检查是否有重复的条目,它会提示消息“重复条目”,但我的代码不做重复检查。
第一个月

  1. function addProject() {
  2. var coursename = $('#name').val();
  3. var fee = $('#fee').val();
  4. // Check for duplicate entry
  5. if (isDuplicateEntry(coursename, fee)) {
  6. alert("Duplicate entry found. Please enter a unique course name and fee.");
  7. return;
  8. }
  9. $.ajax({
  10. type: 'POST',
  11. url: url,
  12. dataType: 'JSON',
  13. contentType: 'application/json; charset=utf-8',
  14. data: JSON.stringify(data),
  15. success: function (data) {
  16. getall();
  17. if (isNew) {
  18. alert("Data has been added");
  19. } else {
  20. alert("Data has been updated");
  21. }
  22. }
  23. });
  24. }
  25. function isDuplicateEntry(coursename, fee) {
  26. for (var i = 0; i < projects.length; i++) {
  27. if (projects[i].coursename === coursename && projects[i].fee === fee) {
  28. return true; // Duplicate entry found
  29. }
  30. }
  31. return false; // No duplicate entry found
  32. }

字符串
我试着在函数addProject()之前放重复的代码,但它没有改变任何东西。

f1tvaqid

f1tvaqid1#

在不了解projects内容的情况下,很难识别问题。请参考下面的示例,它可能会帮助您解决问题。

  1. // Sample projects array
  2. const projects = [
  3. { coursename: 'Web Development', fee: 200 },
  4. { coursename: 'Data Science', fee: 250 },
  5. { coursename: 'Mobile App Development', fee: 180 },
  6. { coursename: 'Graphic Design', fee: 150 },
  7. ];
  8. // Function to check for duplicate entry
  9. function isDuplicateEntry(coursename, fee) {
  10. for (var i = 0; i < projects.length; i++) {
  11. if (projects[i].coursename === coursename && projects[i].fee === fee) {
  12. return true; // Duplicate entry found
  13. }
  14. }
  15. return false; // No duplicate entry found
  16. }
  17. // Example usage
  18. const duplicateCheck1 = isDuplicateEntry('Data Science', 250);
  19. const duplicateCheck2 = isDuplicateEntry('Web Development', 150);
  20. console.log('Duplicate check for "Data Science" with fee 250:', duplicateCheck1);
  21. console.log('Duplicate check for "Web Development" with fee 150:', duplicateCheck2);

字符串

展开查看全部
cpjpxq1n

cpjpxq1n2#

你好像是从后台加载数据,然后检查你的当前实体是否与js代码重复?(我看不到你所有的代码,如果不是,请指出)
我们通常会检查一个实体是否在服务器上重复,以避免加载不必要的数据,当多个用户同时添加实体时,性能会更好。
在asp.net核心MVC项目中,您可以按照此文档尝试远程验证
举个简单的例子:
产品型号:

  1. public class MyEntity
  2. {
  3. public int Id { get; set; }
  4. [Remote(action: "Validate", controller: "MyEntities", AdditionalFields = nameof(Fee))]
  5. public string Name { get; set; }
  6. [Remote(action: "Validate", controller: "MyEntities", AdditionalFields = nameof(Name))]
  7. public string Fee { get; set; }
  8. }

字符串
控制器:

  1. public IActionResult Create()
  2. {
  3. return View();
  4. }
  5. [HttpPost]
  6. public async Task<IActionResult> Create([Bind("Id,Name,Fee")] MyEntity myEntity)
  7. {
  8. if (ModelState.IsValid)
  9. {
  10. _context.Add(myEntity);
  11. await _context.SaveChangesAsync();
  12. return RedirectToAction(nameof(Index));
  13. }
  14. return View(myEntity);
  15. }
  16. [AcceptVerbs("Post","Get")]
  17. public IActionResult Validate(MyEntity myEntity)
  18. {
  19. var duplicated = _context.MyEntity.FirstOrDefault(x=>x.Name==myEntity.Name&&x.Fee==myEntity.Fee)!=null?true:false;
  20. if (duplicated)
  21. {
  22. return Json("An Entity with the same Name& Fee has already exists");
  23. }
  24. return Json(true);
  25. }


检视:

  1. <h1>Create</h1>
  2. <h4>MyEntity</h4>
  3. <hr />
  4. <div class="row">
  5. <div class="col-md-4">
  6. <form asp-action="Create">
  7. <div asp-validation-summary="ModelOnly" class="text-danger"></div>
  8. <div class="form-group">
  9. <label asp-for="Name" class="control-label"></label>
  10. <input asp-for="Name" class="form-control" />
  11. <span asp-validation-for="Name" class="text-danger"></span>
  12. </div>
  13. <div class="form-group">
  14. <label asp-for="Fee" class="control-label"></label>
  15. <input asp-for="Fee" class="form-control" />
  16. <span asp-validation-for="Fee" class="text-danger"></span>
  17. </div>
  18. <div class="form-group">
  19. <input type="submit" value="Create" class="btn btn-primary" />
  20. </div>
  21. </form>
  22. </div>
  23. </div>
  24. <div>
  25. <a asp-action="Index">Back to List</a>
  26. </div>
  27. <script src="~/lib/jquery/dist/jquery.min.js"></script>
  28. <script src="~/lib/jquery-validation/dist/jquery.validate.min.js"></script>
  29. <script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>


测试结果:


的数据

展开查看全部
krcsximq

krcsximq3#

1.可能是缓存问题。请清除服务器中的缓存并重试2.=区分大小写,验证现有数据和新添加的数据是否相同3.尝试在开发人员选项控制台中进行调试4.或者尝试在#行中使用coursename变量和fee变量的alert语句2和3. 5.可能是小数位的费用可能会导致问题。尝试使用警报或尝试console.log

相关问题