ASP.NET Core添加视图参数名称路径不能为空错误

时间:2018-08-25 23:45:51

标签: asp.net-core asp.net-core-mvc

我正在尝试将视图添加到我的ASP.NET Core MVC项目中,但出现错误。

错误消息是

 There was an error running the selected code generator:
 'Value  cannot be null. 
 Parameter name:path'

该视图将用于ViewComponent。

我的步骤是

 Right click -> 
 Add View -> 
 Type View Name -> 
 Uncheck 'Use a Layout Page' -> 
 Template : Empty -> 
 Click Add.

我搜索了它,但找不到任何结果。

编辑:

这是一个Startup.cs

namespace Udemy.MvcWebUI
{
public class Startup
{
    // This method gets called by the runtime. Use this method to add 
    //services to the container.
    // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddScoped<IUsersService, UsersManager>();
        services.AddScoped<IUsersDAL, EFUsersDAL>();

        services.AddScoped<IUsersInfoService, UsersInfoManager>();
        services.AddScoped<IUsersInfoDAL, EFUsersInfoDAL>();

        services.AddScoped<IEventTypesService, EventTypesManager>();
        services.AddScoped<IEventTypesDAL, EFEventTypesDAL>();

        services.AddScoped<IEventsService, EventsManager>();
        services.AddScoped<IEventsDAL, EFEventsDAL>();

        services.AddScoped<ICityService, CityManager>();
        services.AddScoped<ICityDAL, EFCityDAL>();

        services.AddScoped<IDistrictService, DistrcitManager>();
        services.AddScoped<IDistrictDAL, EFDistrictDAL>();

        services.AddDbContext<EventContext>(options => options.UseSqlServer(@"Server=localhost\SQLEXPRESS;Database=Events;
                                        User Id=sa;Password=Omurcan.1994;"));

        services.AddMvc();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseFileServer();
        app.UseNodeModules(env.ContentRootPath);
        app.UseMvcWithDefaultRoute();

        // db tanimi icin
        using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())
        {
            var context = serviceScope.ServiceProvider.GetRequiredService<EventContext>();
            context.Database.EnsureCreated();
        }
    }
}
}

我该如何解决?

感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

您的项目中可能缺少Microsoft.VisualStudio.Web.CodeGeneration.Design包!

根据您的项目.NET Core版本安装Microsoft.VisualStudio.Web.CodeGeneration.Design nuget软件包的正确版本。

然后,如果您最近将项目从任何较低版本更新到.NET Core 2.1,则还将项目的程序包也更新到最新版本。

然后别忘了Download的.NET Core SDK的最新稳定版本(2.1.500)并安装在您的计算机上。

希望您的问题得到解决!

答案 1 :(得分:0)

我有一个类似的问题。它对您不起作用,因为您的NuGet软件包管理器无法下载Microsoft.VisualStudio.Web.CodeGeneration.Design软件包。发生这种情况是因为您没有连接到Internet或您的NuGet配置不正确。

您有两个选择:

1。配置NuGet:

工具-> NuGet软件包管理器->软件包管理器设置

在NuGet软件包管理器下拉菜单中,单击软件包源。单击绿色加号以添加另一个来源。将其命名为 nuget.org ,并将源定义为 https://api.nuget.org/v3/index.json

单击“更新”,然后单击“确定”。下次您尝试以以前的方式添加Razor Page时(通过右键单击Pages-> Add-> Razor Page),它将自动下载正确的软件包。

2。以传统方式添加剃刀页面

右键单击Pages-> Add-> New Item-> Razor Page

这种方式不需要上面指定的NuGet程序包。