asp .net MVC 中没有为此对象错误定义无参数构造函数
No parameterless constructor defined for this object error in asp .net MVC
大家好,我遇到了这个错误。我的项目很简单,我有一个名为“IApiService”的接口,还有一个名为 Api 的 class,它与我的 IApiService 接口相关。所以在“Api”中我有一个 post 和 api 的方法,我认为这个错误与我的错误无关。我认为错误出在我的控制器中。所以我会把我的控制器代码放在一起,这样你们就可以帮助我了!
这是:
public class HomeController : Controller
{
IApiService _apiService;
public HomeController(IApiService apiService)
{
_apiService = apiService;
}
// GET: Home
public async Task<ActionResult> Index(CheckOutViewModel model)
{
var result = await _apiService.CheckOut(model);
return View();
}
}
对于asp.net框架:
区别在于你应该有这样的控制器,不需要注入依赖:
public class HomeController : Controller
{
IApiService _apiService;
public HomeController() : this(new ApiService())
{
}
public HomeController(IApiService apiService)
{
_apiService = apiService;
}
public string getString(string name) {
string a = _apiService.CheckOut(name);
return a;
}
}
============================================= =
请允许我在这里展示一个示例,asp.net核心。
我的控制器:
public class HomeController : Controller
{
private readonly IApiService _apiService;
public HomeController( IApiService iapiService)
{
_apiService = iapiService;
}
public string getString(string name) {
string a = _apiService.CheckOut(name);
return a;
}
}
我的界面:
namespace WebMvcApp.Services
{
public interface IApiService
{
public string CheckOut(string str);
}
}
我的接口实现:
namespace WebMvcApp.Services
{
public class ApiService: IApiService
{
public string CheckOut(string str)
{
return "hello : " + str;
}
}
}
I inject the dependency 在 startup.cs -> ConfigureServices 方法中:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddScoped<IApiService, ApiService>();
}
或在 Program.cs 文件中的 .net 6 中:
builder.Services.AddControllersWithViews();
builder.Services.AddScoped<IApiService, ApiService>();
大家好,我遇到了这个错误。我的项目很简单,我有一个名为“IApiService”的接口,还有一个名为 Api 的 class,它与我的 IApiService 接口相关。所以在“Api”中我有一个 post 和 api 的方法,我认为这个错误与我的错误无关。我认为错误出在我的控制器中。所以我会把我的控制器代码放在一起,这样你们就可以帮助我了! 这是:
public class HomeController : Controller
{
IApiService _apiService;
public HomeController(IApiService apiService)
{
_apiService = apiService;
}
// GET: Home
public async Task<ActionResult> Index(CheckOutViewModel model)
{
var result = await _apiService.CheckOut(model);
return View();
}
}
对于asp.net框架:
区别在于你应该有这样的控制器,不需要注入依赖:
public class HomeController : Controller
{
IApiService _apiService;
public HomeController() : this(new ApiService())
{
}
public HomeController(IApiService apiService)
{
_apiService = apiService;
}
public string getString(string name) {
string a = _apiService.CheckOut(name);
return a;
}
}
============================================= =
请允许我在这里展示一个示例,asp.net核心。
我的控制器:
public class HomeController : Controller
{
private readonly IApiService _apiService;
public HomeController( IApiService iapiService)
{
_apiService = iapiService;
}
public string getString(string name) {
string a = _apiService.CheckOut(name);
return a;
}
}
我的界面:
namespace WebMvcApp.Services
{
public interface IApiService
{
public string CheckOut(string str);
}
}
我的接口实现:
namespace WebMvcApp.Services
{
public class ApiService: IApiService
{
public string CheckOut(string str)
{
return "hello : " + str;
}
}
}
I inject the dependency 在 startup.cs -> ConfigureServices 方法中:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddScoped<IApiService, ApiService>();
}
或在 Program.cs 文件中的 .net 6 中:
builder.Services.AddControllersWithViews();
builder.Services.AddScoped<IApiService, ApiService>();