标签: razor-pages

AspNet Core脚手架应用中的登录和注册页面在哪里?

在VS 2017中,我创建了一个新的ASP.NET核心Web应用程序.在向导的第二页上,我选择了Web应用程序,对于身份验证,我选择了"个人用户帐户".

现在,我正在尝试找到与/ Account/Register和/ Account/Login相关联的页面.

_Layout.cshtml引入_LoginPartial.cshtml,就像在经典MVC中一样:

<div class="navbar-collapse collapse">
    <ul class="nav navbar-nav">
        <li><a asp-page="/Index">Home</a></li>
        <li><a asp-page="/About">About</a></li>
        <li><a asp-page="/Contact">Contact</a></li>
    </ul>
    <partial name="_LoginPartial" />
</div>
Run Code Online (Sandbox Code Playgroud)

如果用户未登录,则_LoginPartial包含<a>指向登录和注册页面的标记:

<ul class="nav navbar-nav navbar-right">
    <li><a asp-area="Identity" asp-page="/Account/Register">Register</a></li>
    <li><a asp-area="Identity" asp-page="/Account/Login">Login</a></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这一切似乎都有道理.但我希望Areas文件夹结构包含Register和Login文件夹.它不是.我发现的唯一的东西是_ViewStart.cshtml

区域文件结构

我知道脚手架代码有效,当我运行项目时,Register链接指向"/ Identity/Account/Register",Login链接指向"/ Identity/Account/Login".点击注册链接可以获得一个注册页面,其中包含"创建新帐户"文本.

但我无法在项目的任何地方找到"创建新帐户"文本.

有人能告诉我我错过了什么吗?

asp.net-identity asp.net-core razor-pages

80
推荐指数
4
解决办法
3万
查看次数

为什么Razor Pages是在Asp.net Core 2.0中创建Web UI的推荐方法?

学习新事物需要投入时间,空间和精力.我目前正在学习Asp.Net Core MVC 2.0.此ASP.NET核心教程概述指出:

Razor Pages是使用ASP.NET Core 2.0创建Web UI的推荐方法.

这个信息使我无法决定是否必须停止学习Asp.net Core MVC并开始学习Asp.net Core Razor Pages.

  • 为什么Razor Pages是在Asp.net Core 2.0中创建Web UI的推荐方法?

欢迎任何指示.

asp.net asp.net-core-mvc asp.net-core razor-pages asp.net-core-mvc-2.0

55
推荐指数
3
解决办法
1万
查看次数

此版本的Microsoft.AspNetCore.All仅与netcoreapp2.1目标框架兼容

当我从2.0升级到.NET Core 2.1后尝试将我的应用程序发布到Web服务器时,我收到此消息:"此版本的Microsoft.AspNetCore.All仅与netcoreapp2.1目标框架兼容.请定位netcoreapp2. 1或选择与netcoreapp2.0兼容的Microsoft.AspNetCore.All版本."

它在我的开发机器上运行良好.

这是我的项目文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Cors" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

我已经看过,但似乎没有问题.我还尝试了CodeGeneration.Tools的预发布2.1版本,但我无法安装它.

编辑:我在服务器上安装了dotnet 2.1.

这是我在服务器上看到的内容:

D:\>dotnet --info
Host (useful for support):
  Version: 2.1.0
  Commit:  caa7b7e2ba

.NET Core SDKs installed:
  No SDKs were found.

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.0 [C:\Program Files (x86)\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.0.5 [C:\Program …
Run Code Online (Sandbox Code Playgroud)

c# razor-pages .net-core-2.1

49
推荐指数
5
解决办法
2万
查看次数

ASP.NET Core 2.0 Razor页面与完整的MVC Core

在SO上有一个问题为什么Razor Pages是在Asp.net Core 2.0中创建Web UI的推荐方法?史蒂夫史密斯从少量文件的角度解释了使用Razor Pages而不是完整MVC的好处.

我一直在使用Razor Pages,并注意到尽管Razor Page简洁的优点,但在自定义路由,结构化文件夹和复杂视图模型(页面模型似乎混乱)方面有点复杂.

所以,问题是:

  1. 如果除了页面简洁之外还有其他任何东西比控制器/视图更喜欢Razor页面 - 特别是我对这两个框架的性能感兴趣?
  2. 是否可以同时组合Razor页面和控制器/视图?

如果一些有经验的人分享了关于使用Razor Pages更好地理解这个框架的想法(优点和缺点),我也将不胜感激.

asp.net-core-mvc razor-pages

47
推荐指数
4
解决办法
2万
查看次数

.Net Core 3.0 JsonSerializer填充现有对象

我正在准备从ASP.NET Core 2.2迁移到3.0。

As I don't use any more advanced JSON features (but maybe one as described below), and 3.0 now comes with a built-in namespace/classes for JSON, System.Text.Json, I decided to see if I could drop the previous default Newtonsoft.Json. Do note, I'm aware that System.Text.Json will not completely replace Newtonsoft.Json.

I managed to do that everywhere, e.g.

var obj = JsonSerializer.Parse<T>(jsonstring);

var jsonstring = JsonSerializer.ToString(obj);
Run Code Online (Sandbox Code Playgroud)

but in one place, where I populate an existing object. …

c# asp.net-core razor-pages asp.net-core-3.0 system.text.json

36
推荐指数
3
解决办法
8311
查看次数

.NET Core 3.0-预览版2-Razor视图在更改时不会自动重新编译

根据https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0,默认情况下,剃刀视图应在asp.net core 3.0的本地环境更改时重新编译。

但是,我的项目不在本地执行。如果更改视图并在本地调试时刷新,则更改不会反映出来。我必须停止解决方案,重新运行,然后查看更改。

我在Visual Studio 2019上的默认ASP.NET Core Web应用程序模板上使用asp.net core 3.0.0预览版2使用剃刀页面执行此操作。我是否需要更改设置以启用此功能?

更新于2019年11月进行3.0版全面发布: 这个问题仍然有很多观点。引用了一些答案来补充

services.AddControllersWithViews().AddRazorRuntimeCompilation(); 
Run Code Online (Sandbox Code Playgroud)

添加Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet包后,将其添加到Startup.cs中的ConfigureServices()函数。就我而言,我仅使用Razor Pages,因此不调用AddControllersWithViews,因此这对我有用:

services.AddRazorPages().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core razor-pages asp.net-core-3.0

32
推荐指数
9
解决办法
4593
查看次数

.NET 7 和 UseEndPoints()

我正在尝试将 .NET Core 3.1 项目转换为 .NET 7。

当我在课堂上使用它时Program.cs

app.UseEndpoints(endpoints =>
{
    endpoints.MapRazorPages();

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

它给了我这样的信息:

建议使用顶级路由注册 UseEndpoints

Show potential fixes然后,我在 Visual Studio 中单击,它显示以下提示:

app.UseEndpoints(endpoints =>
{
    _ = endpoints.MapRazorPages();

    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

这对我来说看起来是一样的。

在.NET 7中,如果我需要使用RazorPages()该怎么办?

谢谢!

c# asp.net-core razor-pages .net-7.0 asp.net-core-7.0

25
推荐指数
1
解决办法
1万
查看次数

ASP.NET Core 2.1身份:如何删除默认UI剃刀页面?

扩展此问题的答案: 在ASP.NET Core Identity UI中更改路由?

当想要自定义URL时,Javier建议使用以下选项之一:

  • 使用默认UI的scaffolding元素并自行进行所有必要的自定义.
  • 使用重定向规则将旧路由指向新路由.
  • 根本不要使用默认UI.

从新的ASP.NET Core 2.1 MVC项目,使用身份验证:个人用户帐户设置,您如何不使用默认UI?它似乎默认安装在Identity Core上.

在此输入图像描述

创建项目后,删除默认UI剃刀页面的方法是什么,仍然使用Identity Core?

我可以删除该/Identity/区域,然后创建我自己的区域AccountController吗?

asp.net asp.net-identity razor-pages asp.net-core-2.1

19
推荐指数
2
解决办法
9652
查看次数

在 Blazor 中设置启动页面

我的 Blazor 应用程序中的启动页面是 Index.cshtml。我想将启动页面更改为主页,即我的 Home.cshtml。
我正在使用 vs2019,ASPNET CORE Blazor (0.9.0-preview3-19154-020)。

Blazor Serverside 在 Startup.cs 中有路由,我认为它是针对服务的,而不是针对页面的……并且保留为通过创建新的 Blazor 项目生成的。

app.UseMvc(routes =>
{
   routes.MapRoute(name: "default", template: "{controller}/{action}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)

客户的启动具有(由新的 Blazor 项目生成):

public void ConfigureServices(IServiceCollection services)
{
}

 public void Configure(IComponentsApplicationBuilder app)
{
     app.AddComponent<App>("app");
}
Run Code Online (Sandbox Code Playgroud)

我是否需要以某种方式在客户端 startup.cs 中注册路由?

index.cshtml 只有一行代码:

@page "/"
Run Code Online (Sandbox Code Playgroud)

如何将我的“启动”页面从 Index.cshtml 更改为 Home.cshtml?

我看过很多地方,都知道 Blazor 是“实验性的”。感觉就像我正在努力改变这么简单的东西。

routing razor-pages blazor

18
推荐指数
3
解决办法
1万
查看次数

Razor类库是否也可以打包静态文件(js,css等)?

可能已经重复了这个,但由于那篇文章没有任何答案,我发布了这个问题.

新的Razor类库非常棒,但它无法打包库文件(如jQuery,共享CSS).

我可以以多种方式在多个Razor Page项目中重复使用CSS,使用Razor类库或其他任何东西(我的目的是,多个网站使用相同的CSS,并且单个更改适用于所有项目).

我尝试wwwroot在Razor类库项目中创建该文件夹,但它没有按预期工作(我可以理解为什么).

c# asp.net-mvc reusability asp.net-core razor-pages

17
推荐指数
3
解决办法
3369
查看次数