问题标签 [razor-pages]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
37636 浏览

c# - ASP.NET Core 2,使用没有 MVC 的 Razor 页面单击按钮

正如有人在评论中指出的那样,Razor 页面不需要控制器,就像您在 MVC 中习惯的那样。我现在 Razor 也没有对按钮单击事件的本机处理。要在用户单击按钮时做某事(在“代码隐藏”中),我们至少有两个选项:

  • 使用提交按钮
  • 使用 ajax 调用

我找到了很多 MVC 示例,展示了如何定义控制器函数。但如前所述,我没有。

因此,我试图理解这两种方式。这是我的测试cshtml:

这里是cshtml.cs:

公共类 TestModel : PageModel { private readonly MyContext _context;

问题

  1. 使用“Way1”(提交)我可以点击按钮,但有一些缺点。默认情况下,由于帖子而重新加载页面。有时我不需要更改任何内容,只需调用 C# 函数即可。但我不明白如何处理多个按钮。即,如果我有 5 个按钮,如何为每个按钮做一些不同的事情?

  2. 使用“Way2”我做错了,因为从未达到 cs 代码中的函数并且我收到错误请求错误 (400)。我错过了什么?

0 投票
2 回答
7936 浏览

c# - How to retrieve a service in razor pages with dependency injection

In ASP.NET Core 2 application I set up some services:

In program.cs I'm able to retrieve my own Service:

Now I'm trying to understand how to do the same when I don't have the host variable, like in any other C# class or even if a cshtml page:

0 投票
1 回答
2908 浏览

c# - 如何在 asp.net core 2 中将图像上传到磁盘,剃须刀页面

我是 asp.net 框架的初学者,但我真的鼓励学习和应用它。 https://docs.microsoft.com/en-us/aspnet/core/tutorials/razor-pages/razor-pages-start

我跟着它,一切都很好,我通过添加新模型,表格。

假设我们有 Movie 模型:

以下是创建过程的代码:

以下是 from 的一部分:

现在我想在表单中添加一个新字段来上传“封面图片”,以便用户可以浏览并选择电影的封面图片以相同的形式上传。

我的问题是:

  • 我想将文件名存储在数据库中,所以每部电影都有一列“CoverImage”,然后我可以用它来显示或删除。这是好方法吗?

  • 存储文件的最佳位置是什么?在“wwwroot”或其他文件夹中或无关紧要?

  • 上传图片的最佳或最新方法是什么?我应该在上面的三段代码中添加什么?我进行了搜索,发现了许多方法和方法,但是作为 asp.net 的专家,我需要从您那里知道什么是最好的方法。

0 投票
2 回答
1098 浏览

html - 创建一个空的 ASP.NET Core 2.0 Razor Pages 项目

我处于 ASP.NET Core 的初学者级别。我有一些由HTML5and制作的 html 页面CSS3。我想用ASP.NETCore Razor Pages 显示这个页面。所以,我打开了一个新的空 ASP.NET Core 项目(我认为默认是剃须刀页面。)

我将图像和 CSS 文件复制到wwwroot文件夹。最后,我将我的 html 代码复制到一个新的 Razor 页面 (Main.cshtml) 中,该页面位于“/Pages”文件夹中。页面可以看到CSS,CSS可以看到图片。但是,Edge404 error在运行项目时会给出。我认为我无法正确进行路由:

404错误

代码

你能帮助我吗?谢谢。

0 投票
1 回答
43 浏览

css - 从项目值中选择一个 CSS 类

在 cshtml 页面中,我可以根据数据库值选择一个类。例子:

“状态”是我的表的枚举,定义如下:

上面的 Razor 语法将根据项目值向我的警报添加一个类。好的!

但现在我需要将这个类“翻译”为 Bootstrap 的类。例子:

我可以使用 Razor 手动执行此操作,但我想知道是否有一种方便的方法可以直接在 css 中执行此操作,例如(元代码):

0 投票
0 回答
818 浏览

javascript - 使用 ASP.NET Core 2.0 更新视图中的实时数据

据我了解,当服务器处理客户端请求(例如 GET)时,它将通过 Razor/Controller 代码运行以生成要返回的 html 页面。

在我的页面中,我显示了一个表格,其中包含从我的模型中读取的数据。现在我能够:

  • 当有新数据可用时更新整个页面
  • 使用 Ajax 和一些 Javascript 来“实时”更新我的视图上的项目

我想知道是否有一种“本机”方法可以做到这一点,而无需手动使用 Ajax。当我更改模型数据时,视图上的相关值会自动更新。

最重要的是是否可以在服务器端执行此操作,而无需像 Ajax 解决方案中那样连续轮询。

编辑

有人否决了这个问题。我猜是因为它被贴上了“太宽泛”的标签。那么,我试着问一个更狭窄的问题。

DbSet“如何在视图发生变化时更新特定值List<>,而无需从客户端进行轮询。`

0 投票
0 回答
388 浏览

c# - Razor-Page:渲染一个完整的页面(chstml+chstml.cs)

据我了解,部分页面只有 cshtml 代码,而 ViewComponent 只有 cs 代码。也许我的方法是错误的,但我试图在另一个页面中呈现一个完整的页面(cshtml + cshtml.cs)。

真实的例子。Visual Studio 2017,ASP.NET 核心 2。

导航栏.cshtml:

导航栏.cshtml.cs

_Layout.cshtml:

在此示例中,我尝试在导航栏中添加徽章。因为 _Layout 文件后面没有代码,所以我不得不把它放在一个单独的页面(NavBar)中。

问题是,当我尝试渲染页面时,它会询问构造函数参数。恐怕我已经以这种方式破坏了依赖注入。

0 投票
1 回答
884 浏览

razor-pages - asp.net core 2.0 mvc中的分页系统

我想为我的项目创建一个包含列表的所有页面的通用分页组件。

我曾经使用过老式的网络表单,但我不确定在 asp.net mvc 核心中使用最佳实践。

我已经阅读了 Microsoft 提供的很棒的文档:https ://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/sort-filter-page#add-paging-functionality-to-the -students-index-page

我已将 PaginatedList 类放入我的项目中。

一切都很好。

但我想将用于分页的 html 内容放在部分视图中(以分解 html 代码):

然后,我想将此行放在每个列表页面的底部:

我有两个问题:

  • 在我的部分视图的第一行,我不知道应该放置哪种数据类型。它可能是 PaginatedList、PaginatedList 或其他任何东西。我不知道说“模型是分页列表,其中 T 可以是我项目的任何实体”的好语法。我试图放置对象而不是 T,但它不起作用。

  • 如您所见,prev/next 链接包含其他参数(param1)。该参数可以是过滤器。但是这个过滤器不一样。有没有办法对标签说:“复制您可以看到的每个 GET 参数及其当前值”?

谢谢

0 投票
1 回答
420 浏览

authorization - 如何在 Razor 页面中设置授权 URL

我的配置服务如下:

当需要授权的页面被调用时,它会被重定向到带有类似 localhost:58731/User/Login?ReturnUrl=%2F 的 URL 的登录页面

我怎样才能像这样设置这个网址:localhost:58731/Login/%2F

谢谢。

0 投票
1 回答
2082 浏览

asp.net-core - 无法在 Razor 页面中使用 ajax 获取 json 数据

我正在尝试从 ASP.NET Core 2.0 中的 Razor Pages 获取一些数据。

但问题是它不返回任何数据。我也试过调试它,它根本不会触发那个方法(OnGetProducts)。

模型Index.cshtml.cs:

剃须刀页面 Index.cshtml

将此页面放在 Pages/Products/Index.cshtml(.cs) 文件夹中