ASP.NET Core MVC是一个轻量级的表示框架,用于使用ASP.NET Core创建动态网站。它允许创建基于控制器的MVC站点,或查看基于模型的Razor页面。 MVC包括路由,模型绑定和验证,过滤器,Web API和Razor视图引擎等功能。
Docker 如何从.NET 应用程序读取配置?如果启用了 Docker,应用程序中会使用哪些配置?
我已经使用 Docker compose 通过 ASP.NET Core 8 MVC 应用程序设置了 Docker。根据我的 compose.yaml 有两个容器,一个用于 MySQL 数据库(卷),一个用于服务器。我
我尝试创建一个电子商务网站。我有一个带有“添加到购物车”按钮的产品页面。在此页面(SingleProduct.cshtml)上,我还从客户处获取产品数量。这个...
如何在 MAUI 中配置“appSettings.json”,就像在 ASP.NET Core Web 应用程序/API 中一样。如何在类的构造函数中使用注入的 IConfiguration?
我需要这样的配置,其中我们使用 appSettings.json 文件,这样我们就可以将应用程序配置值放入该文件中。之后,在应用程序的其他部分使用该配置。 我们可以看到...
如何使用 Rider IDE 将身份脚手架添加到 ASP.NET CORE 应用程序
我正在观看有关 ASP.NET CORE Identity 的教程,其中讲师通过使用 Visual Studio 搭建脚手架来添加身份,但现在我正在使用 Rider IDE,但我没有看到这样的选项,。 ..
我目前正在 ASP.NET Core MVC 中实现一些自定义属性,但我遇到了 ValidationAttribute 问题。验证应在表单提交时触发。 公开课公司 { [
我希望当我向彼此发送消息时,两个人会像 signalR 组一样收到该消息,但我不使用组,我在没有组的情况下执行此操作 请任何人都可以告诉如何做到这一点
同一解决方案中的 ASP.NET Core 5 MVC/RazorPages 和 WebAPI 项目
许多站点分为两部分: www.example.com:供访客使用的公共 MVC / RazorPages 服务器渲染应用程序 app.example.com:供客户和管理员使用的私有 WebAPI 应用程序(可通过 SPA 访问) 这两个
将 AddRazorRuntimeCompilation() 添加到 .NET CORE 6 中的容器会破坏 CSS 页脚
我使用 VS 2022 和 .NET Core 6 创建一个全新的 ASP.NET Core MVC 项目。 VS 将生成基本模板,当我运行它而不接触任何代码时,一切都很好。 到目前为止,一切都很好。 现在...
.NET项目中如果包含tailwind.css,如何编写Docker文件和compose.yml
我正在尝试为我的 CRUD 应用程序设置 ASP.NET Core 8 MVC 项目。 Docker compose 通过 docker init 开箱即用,运行良好。然而,当我尝试为我的前端 D 部分添加 tailwind.css 时...
我正在尝试从多对多数据库表中获取我的帖子编辑页面的复选框值。但我收到错误, CS0029:无法隐式转换类型“System.Collections.Generic.List” 我正在尝试从多对多数据库表中获取我的帖子编辑页面的复选框值。但我收到错误, CS0029:无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic.List” Model: public class PostModel { [Key] public int Id { get; set; } public string? Title { get; set; } public string? Description { get; set; } public List<TagModel> Tags { get; set; } // Many To Many public List<PostTagModel> PostTags { get; set; } } ViewModel: public class EditPostViewModel { public string? Title { get; set; } public string? Description { get; set; } public List<int>? TagId { get; set; } public List<TagModel>? TagList { get; set; } } Controller: [HttpGet] public async Task<IActionResult> Edit(int id) { // Id Check var post = await _postInterface.GetByIdAsync(id); // Check if (post == null) { return View("Error"); } var postVM = new EditPostViewModel { Title = post.Title, Description = post.Description, TagId = post.Tags, // Where I receive error // List TagList = await _context.Tags.ToListAsync() }; return View(postVM); } 我尝试过的 我尝试使用许多不同的变量来实现TagId,但没有成功。这是一个示例: var selectedTags = await _context.Posts.Select(p => p.Tags).SingleAsync(); var postVM = new EditPostViewModel { TagId = selectedTags, // Gives same or nearly similar errors }; Tags 类的 PostModel 属性的类型为 List<TagModel>,并且您尝试将其分配给 TagIds 类型,其类型为 List<int>?。 要解决此问题,您必须获取 Tag 的所有 Id 并将其分配给 TagIds。 var postVM = new EditPostViewModel { Title = post.Title, Description = post.Description, TagId = post.Tags.Select(x => x.Id).ToList(), //^^^^^^^^^^^^^^^^^^^^^^^^^ This will project a new list of ids. TagList = await _context.Tags.ToListAsync() };
如何在 Razor Pages 中使用 MVC 部分视图和布局?
这可以吗?我的大部分 Web 应用程序都在 MVC 中。 但我将设立一个技术角,在那里我只想访问简单的 Razor 页面,而不是设置复杂的端点......
aspnet-codegenerator:即使添加 Microsoft.VisualStudio.Web.CodeGeneration.Design 后也没有可用的代码生成器
无法使用aspnet-codegenerator生成脚手架,以下是我尝试过的: 使用创建了 ASP.Net RazorPages 应用程序 dotnet 新网络应用程序 是否构建了 dotnet 安装了 dotnet-aspnet-
AddDbContext 在 ASP.NET Core Razor 页面的配置服务中不起作用
我将 SQL Server 数据库反转到它们各自的类和上下文中,所有这些似乎都工作正常。 在min context类中,有一行代码指向连接stri...
“@Html.DisplayFor(modelItem => item.FirstName)”和“@item.FirstName”有什么区别?
@Html.DisplayFor(modelItem => item.FirstName) 和 @item.名字 哪种方式是首选方式?哪个最好以及如何?
在 ASP.NET Core MVC 中刷新 cookie 票证
我正在使用 .NET Core 和 OpenID Connect,并使用 SlidingExpiration = true 和 ExpireTimeSpan = 20 分钟配置 cookie。 我观察到,当我在应用程序中处理任务时......
ASP.NET Core 6 MVC Web 应用程序:无法注销
我无法注销,即使执行注销操作后,我的 User.Identity.IsAuthenticated 仍然显示“true”。 我的Program.cs文件是这样的 builder.Services.AddAuthentication(
在 ASP.NET Core MVC 中高效地按 Id 显示数据以及关联的多对多表数据
我的网站有很多帖子,每个帖子的详细信息页面都会显示相关信息以及该帖子所标记的标签[多对多数据]。 代码: 公共异步任务 我的网站有很多帖子,每个帖子的详细信息页面都会显示相关信息以及该帖子所标记的标签[多对多数据]。 代码: public async Task<IActionResult> Detail(int id) { var Post = await _postInterface.GetByIdAsync(id); var Tag = await _context.Posts.Include(p => p.PostTags) .ThenInclude(t => t.Tag).ToListAsync(); return View(Post); } var Post 根据所选的 id 显示数据库数据。 var Tag从多对多关系数据库表初始化。 我的问题: 有没有办法只初始化内容而不使用这里的var Tag =,因为它不是必需的? await _context.Posts.Include(p => p.PostTags).ThenInclude(t => t.Tag).ToListAsync(); 为了解释您所看到的情况,请对代码进行分解: var Post = await _postInterface.GetByIdAsync(id); 这一行从 _postInterface 类中获取单个帖子。这通常称为存储库模式,并且通常有一个缺点,即它不能轻松地促进诸如急切加载调用者可能想要的相关数据之类的事情。 var Tag = await _context.Posts.Include(p => p.PostTags) .ThenInclude(t => t.Tag).ToListAsync(); 这一行实际上并不是在加载一个或多个标签,它实际上是在加载ALL帖子,并将所有包含的标签加载到“Tag”变量和DbContext的跟踪缓存中。 (非常糟糕!!!) 这似乎有效的原因是因为在调用“读取所有内容”之后,DbContext 现在正在跟踪所有帖子和标签,因此当您返回加载的“帖子”时,对其 PostTags/Tag 的代理引用可以是当使用代码尝试访问它们时,由 DbContext 填充。如果删除该 var Tags = ....,则 Context 不会跟踪它们,并且您会得到 #null,或者如果启用了延迟加载,只要 DbContext 未释放,它就会在访问时获取它们。 你真正想要的是: public async Task<IActionResult> Detail(int id) { var post = await _context.Posts .Include(p => p.PostTags) .ThenInclude(t => t.Tag) .AsNoTracking() .SingleAsync(p => p.Id == id); return View(post); } 这告诉 EF 我们想要一篇文章,但要包含该文章的 postTags 和 Tags。 AsNoTracking() 调用是可选的,但在这种情况下使其速度更快一点,因为它告诉 EF DbContext 不需要跟踪这些实体。如果您返回分离的实体,则 Context 不需要跟踪实体,因为 DbContext 无论如何都应该在请求结束时被处置。例如,如果您碰巧将 .AsNoTracking() 添加到原始 var Tags = .... 查询中,您实际上会发现您的代码停止工作,因为当您返回“时,您的代码依赖于跟踪缓存行为来填充引用”帖子”。 您必须修改 GetByIdAsync 方法才能获取带有相关标签的选定帖子。 public async Task<Post> GetByIdAsync(int id) { return await _context.Posts .Include(p => p.PostTags) .ThenInclude(t => t.Tag) .FirstOrDefaultAsync(p => p.Id == id); } 如果您想保留 GetByIdAsync 的当前实现,建议创建另一个方法,例如:具有上述实现的 GetPostWithTagsAsync 。不要忘记在您的 PostInterface 中添加方法(签名,不带方法主体)。 public async Task<Post> GetPostWithTagsAsync(int id) { return await _context.Posts .Include(p => p.PostTags) .ThenInclude(t => t.Tag) .FirstOrDefaultAsync(p => p.Id == id); } public interface IPostInterface { Task<Post> GetPostWithTagsAsync(int id); }
我试图让视图中的按钮使用按钮的 onClick 事件调用模型中的方法,但我不确定如何实现此操作。该按钮根本不执行任何操作。 这是我的观点: ...
在 ASP.NET Core MVC 中为 HttpResults 指定 JsonSerializerOptions
使用 ASP.NET Core MVC,可以通过多种方式返回结果。 ASP.NET Core Web API 中的控制器操作返回类型: 具体类型 IActionResult ... Http结果 但是当控制器
同一 IIS 服务器上的 ASP.NET Core MVC 和 Web API
我有两个应用程序: ASP.NET Core MVC Web 应用程序 ASP.NET Core Web API 当我在计算机上运行应用程序时,一切正常,MVC 应用程序可以向我的 API 发出 get/post http 请求。 当我