2023年5月

9.在Visual Studio 2022中按F5运行应用程序。在浏览器将呈现登录页面,然后输入管理员用户名进行登录。浏览器跳转到首页面。  
 

10.在主界面的菜单中,选择“Business->供应商管理”菜单项,浏览器中呈现一个供应商信息列表页面,css起作用了,样式好看了。如下图。
 

 


11然后点击供应商列表页面中的新增(Add)按钮,填写内容,然后点击“保存”按钮。如下图。  
 


 

 


12. 在“Create New Supplier”页面中我们输入完信息之后,点击“Save”按钮。应用程序报了一个错误。如下图。  
 


 

 

13.Supplier的增删改查,我们是调用的WebApi来实现保存到数据库与查询数据的操作,那么问题就可能出在WebAPI这一个项目中。在Visual Studio 2022的解决方案资源管理器中,选中“ABP.TPLMS.Web.Host”项目,然后单击鼠标右键,在弹出菜单中选中“设为启动项目”。按F5运行应用程序,程序报错。  
 

14. 在Visual Studio 2022的解决方案资源管理器中,“ABP.TPLMS.Web.Host”项目的App_Data\Log目录下找到log.txt文件,这是一个日志文件。在文件中我找到如下,错误信息。  
 

AspNetCore.Server.IIS.Core.IISHttpServer - Connection ID "18230571335350747201", Request ID "40000042-000a-fd00-b63f-84710c7967bb": An unhandled exception was thrown by the application.
Microsoft.AspNetCore.Routing.Matching.AmbiguousMatchException: The request matched multiple endpoints. Matches:
 ABP.TPLMS.Suppliers.SupplierAppService.CreateAsync (ABP.TPLMS.Application)

ABP.TPLMS.Suppliers.SupplierAppService.Create (ABP.TPLMS.Application)

   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ReportAmbiguity(CandidateState[] candidateState)
   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.ProcessFinalCandidates(HttpContext httpContext, CandidateState[] candidateState)
   at Microsoft.AspNetCore.Routing.Matching.DefaultEndpointSelector.Select(HttpContext httpContext, CandidateState[] candidateState)
   at Microsoft.AspNetCore.Routing.Matching.DfaMatcher.MatchAsync(HttpContext httpContext)

   at Microsoft.AspNetCore.Routing.EndpointRoutingMiddleware.Invoke(HttpContext httpContext)

   at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)

 

  15. 在Visual Studio 2022的解决方案资源管理器中,“ABP.TPLMS.Applicationt”项目的Suppliers目录下找到SupplierAppService.cs文件。在文件中有两个Create方法,代码如下:  

using Abp.Application.Services;using Abp.Domain.Repositories;using ABP.TPLMS.Entitys;using ABP.TPLMS.Suppliers.Dto;using System;using System.Collections.Generic;using System.Text;using System.Threading.Tasks; 
namespace ABP.TPLMS.Suppliers
{   public class SupplierAppService :AsyncCrudAppService<Supplier, SupplierDto, int, PagedSupplierResultRequestDto, CreateUpdateSupplierDto, CreateUpdateSupplierDto>,ISupplierAppService     
    {public SupplierAppService(IRepository<Supplier, int> repository)
            : base(repository)
    {            
    }public Task<SupplierDto> Create(CreateUpdateSupplierDto input)
        {return CreateAsync(input);
        }public override Task<SupplierDto> CreateAsync(CreateUpdateSupplierDto input)
        {var sin = input;return base.CreateAsync(input);
        }
    }
}

 


16. 在Visual Studio 2022的解决方案资源管理器中,使用鼠标双击打开 SupplierAppService.cs文件。将Create方法注释。按F5运行应用程序。登录之后,点击“Supplier”目录,我们可以看到供应商列表页面。然后点击供应商列表页面中的Add按钮。  
 


 

 

17. 在“Create New Supplier”页面中我们输入完信息之后,点击“Save”按钮。数据保存到数据库,应用会刷新供应商列表页面。如下图。