ASP.NET Core MVC是一个轻量级的表示框架,用于使用ASP.NET Core创建动态网站。它允许创建基于控制器的MVC站点,或查看基于模型的Razor页面。 MVC包括路由,模型绑定和验证,过滤器,Web API和Razor视图引擎等功能。
我正在开发 ASP.NET Core MVC 应用程序。我有一个带有上传字段(照片上传)的视图,当我单击它并打开文件时,应用程序会停止并且不显示任何消息
在ConfigureServices中解决DI注册并使该代码可重用的最佳实践是什么?
我们使用 Azure 密钥保管库来存储机密(如密码)。我们实现了一个名为 KeyVaultClient 的客户端,它从 Azure Key Vault 请求所需的机密。这里面有一个秘密...
使用控制器和视图在 MVC ASP.NET Core 中进行路由
我仍在尝试探索路由,但我无法完成工作。我对如何使用视图和控制器感到困惑,我试图实现像 http://localhost:5036/Dashboard/Products
我创建了 AuthorizeSessionAttribute 来处理 Web 应用程序中的权限。问题是当我不授权访问 API 并且我这样做时: context.Result = new StatusCodeResult((int)
我创建了 AuthorizeSessionAttribute 来处理 Web 应用程序中的权限。问题是当我不授权访问 API 并且我这样做时: context.Result = new StatusCodeResult((int)
描述如何为 ASP NET Core MVC 编写选择元素的文档在哪里?
我花了几个小时让 元素正常工作,最后,解决方案来自尝试随机的东西,而不是我在互联网上找到的任何东西。 我是一个... 我花了几个小时让 <select> 元素正常工作,最后,解决方案来自尝试随机的东西,而不是我在互联网上找到的任何东西。 我能够轻松填充下拉列表,但事实证明,将选定的值返回到 POST 中要困难得多。 我在哪里? 我知道我正在使用使用 ASPNET Zero 创建的 ASP.NET Core 8 MVC 应用程序,但更精细的细节是模糊的。我得到了像 this one 这样的搜索结果,但我认为上下文有一些不同(即使我也使用 ASP.NET Core 标记帮助器),因为这些示例不适合我。 不知道我的上下文叫什么,这让我很难集中精力进行谷歌搜索。 我的代码 这是我的视图模型: public class CreateOrEditVisitorLogModalViewModel { public CreateOrEditVisitorLogDto VisitorLog { get; set; } public List<StaffMemberDto> StaffMembers { get; set; } } 这是CreateOrEditVisitorLogDto: public class CreateOrEditVisitorLogDto : EntityDto<long?> { public DateTime ArrivalTime { get; set; } public DateTime? DepartureTime { get; set; } public string VisitorName { get; set; } public string Visiting { get; set; } } 这是我的下拉菜单;这是我花了很长时间才完成的部分: <select name="visiting" asp-for="@Model.VisitorLog.Visiting" asp-items="@(new SelectList(Model.StaffMembers, nameof(StaffMemberDto.Id), nameof(StaffMemberDto.Name)))" class="form-control"> <option value="">--- select one ---</option> </select> 如果我删除 asp-for 属性,则没有什么区别 - 表单会将下拉列表中选择的值发回服务器。 如果我更改 name 属性的值或将其删除(即,使其看起来像 此示例),则所选值不会发布回服务器。 问题 哪里有文档说明您需要做什么来获取选择列表来填充我的上下文中的“目标”(我的意思是,回发时应该填充的字符串项),并且其中描述了准确要做什么放入 name 属性? 说明 您首先需要知道asp-for标签助手将在前端生成id和name元素(请参阅此处)。 但如果您在 html 中指定 name 属性,标签助手默认生成的名称值将被覆盖。 模型绑定会在源中查找名称模式prefix.property_name。如果没有找到任何内容,它只会查找不带前缀的 property_name。 结论 如果您的后端需要接收如下参数: public IActionResult Post(CreateOrEditVisitorLogDto model) 一种方法是添加 name 属性,就像您所做的那样(name="Visiting")。 另一种方式,如果您继续使用asp-for="@Model.VisitorLog.Visiting"而不添加name属性,则可以使用[Bind(Prefix ="VisitorLog")]来指定前缀: public IActionResult Post([Bind(Prefix ="VisitorLog")]CreateOrEditVisitorLogDto model) 如果您的后端需要接收如下参数: public IActionResult Post(CreateOrEditVisitorLogModalViewModel model) 仅使用 asp-for="@Model.VisitorLog.Visiting" 应该可以正常工作。
MVC Razor 标记内的 HTML 元素中出现奇怪的属性
我正在使用 ASP.NET Core。我创建了一个带有 HTML 标记的 Razor 页面,当我在 VS 2022 中打开它时,我看到以下内容... 截屏: 代码示例: 我正在使用 ASP.NET Core。我创建了一个带有 HTML 标记的 Razor 页面,当我在 VS 2022 中打开它时,我看到以下内容... 截图: 代码示例: <div b-t4arfvlwgt class="page__background"></div> 我以为这是一个 ASP.NET Core 功能,也许,但我检查了我的旧项目 - 没有这样的问题。 这是由 .NET CSS 隔离功能引起的,该功能最初是为 Blazor 设计的: https://learn.microsoft.com/en-us/aspnet/core/blazor/components/css-isolation?view=aspnetcore-7.0 但是,它也已添加到 .NET MVC 中。进一步阅读:https://www.mikesdotnetting.com/article/355/css-isolation-in-razor-pages
不确定这是否是要更改的地方,但由于您的评论,我更改了一些内容,我仍然看不到图片,但这里是代码的更新: JS应用程序: 从 '... 导入 axios
当 SameSite 设置为 none 时,ASP.NET Core 不会创建身份验证 cookie
我想测试跨域身份验证,经过一番研究,似乎用于身份验证 cookie 的 SameSite 应该设置为 none,如下所示: options.Cookie.SameSite = SameSiteMode.None; 问题...
ASP.Net Core MVC <select> <option>返回 null
正在开发 ASP.NET Core MVC 应用程序。我的 Razor 视图有一个 和 @model List。我想用 中的值填充表单 CartForm 正在开发 ASP.NET Core MVC 应用程序。我的 Razor 视图有一个 <select><option> 和 @model List<CatalogItem>。我想用 CartForm 项中的值填充表单 CatalogItem。当用户选择一个项目并将其发送回操作方法时 asp-action="CartForm" 所选项目返回为 null。 我错过了什么? <select id="itmSelect" name="itmSelect"> foreach (CatalogItem itm in Model) { <option class="text-dark" value="@itm">@itm.Description</option> } </select> 虽然这并不能解释 null 值: value的<option>必须是字符串,或者至少是简单类型。 您的@itm属于复杂类型。 您应该将其更改为: <option class="text-dark" value="@itm.ID"> 通过更改此设置,您至少可以发布正确的选定值,这可能会更好地反映您的发送模型。 正如@Stefan所说,@itm是一个复杂类型,我们无法直接在选择选项值中将其传递给控制器。 如果您仍然想根据选择选项传递项目,我建议您可以尝试使用 CatalogItem 属性为选择选项设置一些自定义属性,并在视图上添加隐藏字段,隐藏输入的名称是 CatalogItem 属性名称. 然后你可以使用jquery根据下拉列表选择选项设置输入隐藏的值。 asp.net core模型绑定会根据formdata的名称来绑定模型,所以绑定得很好。 更多详情,您可以参考下面的例子。 目录项型号: public class CatalogItem { public int Id { get; set; } public string Description { get; set; } public string Name { get; set; } } 查看: <form asp-action="DropdownGetValue" id="test1"> <select id="itmSelect" name="Id"> @foreach (var itm in Model) { <option class="text-dark" value="@itm.Id" Description="@itm.Description" Name="@itm.Name">@itm.Description</option> } </select> <input type="hidden" name="Description" id="Description" /> <input type="hidden" name="Name" id="Name" /> <input type="submit" value="Click" /> </form> Jquery 脚本: <script type="text/javascript"> $(function () { $("#itmSelect").change(function () { $("#Description").val($('#itmSelect').find(":selected").attr("Description")); $("#Name").val($('#itmSelect').find(":selected").attr("Name")); }); }) </script> 控制器: [HttpPost] public IActionResult DropdownGetValue(CatalogItem itmSelect) { //_db.Category.Add(ca); //_db.SaveChanges(); int i = 0; return Ok(); } 结果: 我遇到的空值问题是由于我没有在回发方法中命名参数以匹配标签的名称。一旦我将其调整好,一切就都正常了。 感谢所有提供时间和评论的人。 我遇到了同样的问题,通过添加 asp-for 和 id html 属性解决了。
ASP.NET Core:在 localStorage 中传递我的会话/身份验证登录
我正在尝试将电子邮件和用户名传递到本地存储,以便我可以在仪表板中使用它并注销帐户。我对 ASP.NET 不太熟悉,因为设置太复杂了...
方法不允许 405 POST ASP.NET CORE 5.0 WEB API
我在我的mvc项目上同时运行两个项目,当我调用我的PaymentServiceAsync()方法时,当它到达response.EnsureSuccessStatusCode()行时,变量响应显示Met...
我在这里找到了这段可爱而简单的代码: 禁用表单字段不提交数据 这似乎对某些人有用。 我将它插入到我的项目(ASP.NET Core 8.0 MVC)中,但它是......
`HTTPContext.SignInAsync` 在幕后做了什么?
我有兴趣构建自己的登录系统,这使我远离隐藏了很多细节的开箱即用的身份。 我正在研究使用 cookie 进行身份验证。 https://
如何在ASP.NET Core MVC中将授权扩展到其他相关项目?
如何在ASP.NET Core MVC项目中让相关项目受到一次授权保护?集中式认证和授权系统。无需第三方应用程序的参与。 ...
如何在ASP.Net Core MVC中的script标签中渲染cshtml中编写的js内容
我有一个 cshtml 文件,其中声明了我的所有路线数据。 文件名:_Routes.cshtml @{布局=“”; Context.Response.ContentType = "文本/javascript"; } var 公共路由 = { 用户L...
Azure App Insights JS 脚本由 Azure 应用服务自动注入,并被内容安全策略阻止。怎么解锁?
我们正在开发一个运行 .NET 8 的 ASP.NET Core MVC 应用程序。它通过 Azure 应用服务部署在 Azure 上。我们已在应用程序中实施内容安全策略并已分配...
我正在处理一个 ASP.NET Core 8 MVC 项目,其中有两个简单的表,分别填充产品和客户端。单击以查看或编辑实体时(此时哪个实体并不重要......
如何高效地检索我的 asp .NET 应用程序中的大量数据?
感谢您关注我的问题 我正在尝试制作一个仪表板,显示团队中的每个重要数据(创造的销售额、损失的销售额、平均响应等)。 所以在控制器上我
将失败的 Entra ID 身份验证错误页面重定向回我们的应用程序
要求: 当 Entra ID 身份验证期间发生任何错误时,应在新选项卡中打开自定义错误页面,并在第一个选项卡中保留原始错误消息。 Entra ID认证花...