小编Jer*_*ney的帖子

是否可以在 ASP.NET Core 2.1 Razor 页面中刷新视图组件?

是否可以在 ASP.NET Core 2.1 Razor 页面中刷新视图组件?

我发现这在使用 AJAX 的 ASP.NET MVC 中是可能的 - 请参阅Viewcomponent 替代解决方案,用于 ajax 刷新ViewComponents 不是 async。但是 ASP.NET Core 呢?

我发现的一种解决方案基本上是让控制器返回视图组件,然后使用 AJAX 进行刷新。

这是从ViewComponents借来的例子不是异步的

~/HelloWorldViewComponent.cs

public class HelloWorldViewComponent : ViewComponent
{
    public IViewComponentResult Invoke()
    {
        var model = new string[]
        {
            "Hello", "from", "the", "view", "component."  
        };

        return View("Default", model);
    }     
}
Run Code Online (Sandbox Code Playgroud)

~/HomeController.cs(我无法让这部分在剃刀页面中工作)

public class HomeController : Controller
{
    public IActionResult GetHelloWorld()
    {
        return ViewComponent("HelloWorld");
    }
}
Run Code Online (Sandbox Code Playgroud)

~/Views/Shared/Components/HelloWorld/Default.cshtml …

ajax asp.net-mvc asp.net-core razor-pages asp.net-core-viewcomponent

5
推荐指数
1
解决办法
5310
查看次数

如何避免在 ASP.NET Core MVC 中将视图组件 cshtml 命名为“Default.cshtml”?

看来在 ASP.NET Core MVC 中,如果我想使用视图组件,我必须将它们放入Views\\Shared\\Components\\[ViewComponentName],然后将文件命名为“Default.cshtml”。

\n

这是相当令人沮丧的,因为在一个大型项目的开始,我正在帮助从 Perl CGI 进行移植,我正在创建大量的视图组件,并在 Visual Studio 中拥有五个选项卡,全部命名为Default.cshtml是令人困惑的。

\n

有什么办法可以避免这种命名约定吗?也许甚至可以将它们从文件夹中取出,以便文件看起来像\xe2\x80\xa6?

\n
Views\\Shared\\Components\\[ViewComponentName].cshtml\n
Run Code Online (Sandbox Code Playgroud)\n

我不知道是否只有一些设置可以调整或者什么。大多数情况下,我对 ASP.NET 非常陌生,并且仍在摸索中。使用 ASP.NET Framework 而不是 ASP.NET Core一种选择,但我不想这样做,因为很多样板已经完成。

\n

ViewComponents 的文档是这样说的:

\n
\n

我们建议您将视图文件命名为 Default.cshtml 并使用 Views/Shared/Components/{View Component Name}/{View Name} 路径。

\n
\n

这让我认为有一种方法可以绕过这个限制,但它没有具体说明它是如何工作的或者它会是什么样子。

\n

asp.net-core-mvc asp.net-core asp.net-core-viewcomponent view-components

5
推荐指数
1
解决办法
2003
查看次数

创建一个接受 HTML 或其他组件作为参数的视图组件模板/容器

我搜索了很多地方,并没有看到任何与我的想法相似的东西。

假设我想创建一个可重用的容器组件,如卡片、表单或模式,并将其保存为视图组件。我将如何在该主视图组件的“主体”内添加一个新的视图组件,以使其最大程度地可重用?

这里的语法当然只是为了演示这个想法,但例如,像这样:

<vc:parent var1="x" var2="y">
    <vc:child var3="a" var4="b"></vc:child>
    <vc:child var3="c" var4="d"></vc:child>
</vc:parent>
Run Code Online (Sandbox Code Playgroud)

这样的事情有可能吗?

这不一定需要使用视图组件——也许是部分视图?——只要实现重用其他可重用元素的容器的主要目标。

我已经研究过帮助程序,但它们在 ASP.NET Core 中不再可用。

asp.net-core razor-pages asp.net-core-viewcomponent view-components

5
推荐指数
1
解决办法
640
查看次数

.NET Core 3.0:ASPNETCORE_ENVIRONMENT 在发布时具有开发价值

我试图在周末将我的 ASP.NET Core 2.2 项目迁移到新发布的 ASP.NET Core 3.0。

在本地环境中一切看起来都很好,但是在发布并部署到 IIS 之后,我在使用开发环境配置时遇到了一些问题。

我使用的Visual Studio 2019的Community Edition版本16.3.0

经过检查,我发现该web.config文件的ASPNETCORE_ENVIRONMENT值设置为Development,这导致了问题。即使在发布配置中,它也是通过网络发布生成的。

我以为它应该是Production?还是我错过了一些配置?我从未在任何早期版本的 .NET Core 中遇到过这个问题。

现在的问题是,如果我再次发布整个文件夹,问题很可能会再次出现。

有关问题根本原因的任何解决方案或建议?我的Web.config看起来如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <httpRuntime executionTimeout="180" />
  </system.web>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\MyApp.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" hostingModel="InProcess" stdoutLogFile=".\logs\stdout">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_HTTPS_PORT" value="44329" />
        <environmentVariable name="COMPLUS_ForceENC" value="1" />
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> …
Run Code Online (Sandbox Code Playgroud)

visual-studio webdeploy asp.net-core asp.net-core-3.0

5
推荐指数
1
解决办法
1726
查看次数

外部函数作为可空保护的可能性吗?

C# 8 引入了可为空引用类型,这是一个非常酷的特性。现在,如果您希望获得可空值,则必须编写所谓的守卫:

object? value = null;
if (value is null)
{
  throw new ArgumentNullException();
}
…
Run Code Online (Sandbox Code Playgroud)

这些可能有点重复。我想知道是否有可能避免为每个变量编写这种类型的代码,而是有一个保护类型的static void函数,如果 value is 则抛出异常,null或者如果 value is not 则返回null。或者这对编译器来说太难推断了?特别是如果它是外部库/包?

c# .net-core c#-8.0 nullable-reference-types

5
推荐指数
1
解决办法
330
查看次数

基于自定义格式的字符串验证

我想根据自定义格式验证字符串:(_.__,_.__). 这应该是一个十进制输入,后跟一个逗号,然后是另一个十进制输入,用括号括起来——例如(1.01,3.21). 我希望字符串模式接受一个或多个条目——例如(1.01,3.21)(3.01,4.51)...(2.1,5.6). 有可能这样做吗?

c# regex string format validation

5
推荐指数
1
解决办法
103
查看次数

我是否需要在逻辑请求端手动将 AsyncLocal 变量的值更改为“Dispose”/“Release”

AsyncLocal<T>我读到MSDN 文档中读到了相关内容,但有一点我仍然不清楚。

\n\n

我正在研究诸如上下文绑定的缓存/记忆之类的东西,其目的很简单,就是跨逻辑请求存储数据。这与旧的类似HttpContext.Current,数据跨请求存储,并在请求结束时释放。然而,就我而言,我希望与环境无关,因此实现不受 ASP.NET MVC、ASP.NET Core、WCF 等的约束,同时仍然能够存储和检索数据绑定到逻辑请求,而不在逻辑上不同的请求之间共享它。

\n\n

为了根据问题简化我的代码,它看起来有点像这样:

\n\n
class ContextualStorageAccessor\n{\n    // ConcurrentDictionary since it\'s okay if some parallel operations are used per logical request \n    private readonly AsyncLocal<ConcurrentDictionary<string, object>> _csm = new AsyncLocal<ConcurrentDictionary<string, object>>();\n\n    public ConcurrentDictionary<string, object> Storage\n    { \n        get\n        {\n            if (_csm.Value != null)\n                return _csm.Value;\n\n            _csm.Value = new ConcurrentDictionary<string, object>();\n\n            return _csm.Value;\n        }\n    } \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

的生命周期ContextualStorageAccessor是单例的。

\n\n

现在的问题是:Value每个请求都会有一个唯一的实例吗?换句话说,我是否需要继续分配默认值_csm.Value手动分配默认值?或者我可以依靠应用程序本身的类型(例如,ASP.NET MVC、WCF 等)来处理它?

\n\n

或者,换句话来说:“异步流”的结尾在哪里,并保证 …

c# concurrency caching asynchronous async-await

5
推荐指数
1
解决办法
2033
查看次数

如何解决带有下划线变量的 Spring Boot findBy 方法

当我运行以下项目时,我收到以下错误。我该如何修复它?

引起原因:java.lang.IllegalArgumentException:无法为方法公共抽象com.example.pharmanic.model.Rdhs_Hospital_Current_Stock com.example.pharmanic.repositories.Rdhs_Hospital_Current_StockRepository.findBysr_no(java.lang.String)创建查询!未找到 Rdhs_Hospital_Current_Stock 类型的属性 sr!

这是我的Rdhs_Hospital_Current_Stock模型课。

@Entity
@Data
@Table(name = "Rdhs_Hospital_Current_Stock")
public class Rdhs_Hospital_Current_Stock {
    @Id
    private Long batchId;
    private int quantity;
    private String expiredate;

    @ManyToOne
    private Hospital_By_Rdhs hospital_by_rdhs;


    @ManyToOne
    @JoinColumn(name = "sr_no", nullable = false, referencedColumnName = "sr_no")
    private Medicine medicine;


}
Run Code Online (Sandbox Code Playgroud)

sr_no是表的外键Medicine

这是我的Medicine实体:

@Data
@Entity
public class Medicine {
    private @Id String sr_no;

    private String name;
    private String side_effect;
    private String description;

    public Medicine() {
    }

    public Medicine(String sr_no, String …
Run Code Online (Sandbox Code Playgroud)

jpa spring-data-jpa spring-boot

5
推荐指数
1
解决办法
3305
查看次数

由于第 3 方依赖项,单文件 .NET 5 项目发布错误

目前,在 anetcoreapp3.1和 I\xe2\x80\x99m 上尝试升级到.net5. 编译期间没有问题,但在 Docker 中运行时,我得到:

\n
\n

System.NotSupportedException:从单文件包加载的程序集不支持 CodeBase。

\n
\n

我知道它发布在这里

\n
\n

建议操作

\n

作为单个文件发布时,避免依赖于程序集的文件位置。

\n
\n

但我使用RawRabbit \xe2\x80\x99m ,它已经不活动了。我还挖掘了源代码,发现只有一个地方调用了已弃用的API

\n

我当前的解决方法是不发布单个文件,但我是否已经绝望了?

\n

c# rawrabbit .net-5

5
推荐指数
1
解决办法
4106
查看次数

如何处理“从客户端检测到潜在危险的Request.Form值”?

我在 ASP.NET MVC Framework 应用程序的处理程序中收到了一些“一般”错误protected void Application_Error()。异常消息是:

\n
\n

从客户端检测到潜在危险的 Request.Form 值

\n
\n

有很多方法可以触发此操作;仅一个例子是拨打电话,例如

\n
http:/www.mywebsite.com/http:/www.mywebsite.com/\n
Run Code Online (Sandbox Code Playgroud)\n

我想仅为这种异常创建一个“过滤器”,并相应地重定向或管理请求。我不想禁用它,只是想管理它。我也不希望它落入通用protected void Application_Error()处理程序\xe2\x80\x94 中,或者至少,我想在该方法内部管理它,这样它就不会被我的日志记录等处理。

\n

我该如何处理这个问题?

\n

asp.net-mvc exception .net-4.6.1

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