是否可以在 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
看来在 ASP.NET Core MVC 中,如果我想使用视图组件,我必须将它们放入Views\\Shared\\Components\\[ViewComponentName],然后将文件命名为“Default.cshtml”。
这是相当令人沮丧的,因为在一个大型项目的开始,我正在帮助从 Perl CGI 进行移植,我正在创建大量的视图组件,并在 Visual Studio 中拥有五个选项卡,全部命名为Default.cshtml是令人困惑的。
有什么办法可以避免这种命名约定吗?也许甚至可以将它们从文件夹中取出,以便文件看起来像\xe2\x80\xa6?
\nViews\\Shared\\Components\\[ViewComponentName].cshtml\nRun Code Online (Sandbox Code Playgroud)\n我不知道是否只有一些设置可以调整或者什么。大多数情况下,我对 ASP.NET 非常陌生,并且仍在摸索中。使用 ASP.NET Framework 而不是 ASP.NET Core一种选择,但我不想这样做,因为很多样板已经完成。
\nViewComponents 的文档是这样说的:
\n\n\n我们建议您将视图文件命名为 Default.cshtml 并使用 Views/Shared/Components/{View Component Name}/{View Name} 路径。
\n
这让我认为有一种方法可以绕过这个限制,但它没有具体说明它是如何工作的或者它会是什么样子。
\nasp.net-core-mvc asp.net-core asp.net-core-viewcomponent view-components
我搜索了很多地方,并没有看到任何与我的想法相似的东西。
假设我想创建一个可重用的容器组件,如卡片、表单或模式,并将其保存为视图组件。我将如何在该主视图组件的“主体”内添加一个新的视图组件,以使其最大程度地可重用?
这里的语法当然只是为了演示这个想法,但例如,像这样:
<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
我试图在周末将我的 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) 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。或者这对编译器来说太难推断了?特别是如果它是外部库/包?
我想根据自定义格式验证字符串:(_.__,_.__). 这应该是一个十进制输入,后跟一个逗号,然后是另一个十进制输入,用括号括起来——例如(1.01,3.21). 我希望字符串模式接受一个或多个条目——例如(1.01,3.21)(3.01,4.51)...(2.1,5.6). 有可能这样做吗?
AsyncLocal<T>我读到MSDN 文档中读到了相关内容,但有一点我仍然不清楚。
我正在研究诸如上下文绑定的缓存/记忆之类的东西,其目的很简单,就是跨逻辑请求存储数据。这与旧的类似HttpContext.Current,数据跨请求存储,并在请求结束时释放。然而,就我而言,我希望与环境无关,因此实现不受 ASP.NET MVC、ASP.NET Core、WCF 等的约束,同时仍然能够存储和检索数据绑定到逻辑请求,而不在逻辑上不同的请求之间共享它。
为了根据问题简化我的代码,它看起来有点像这样:
\n\nclass 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}\nRun Code Online (Sandbox Code Playgroud)\n\n的生命周期ContextualStorageAccessor是单例的。
现在的问题是:Value每个请求都会有一个唯一的实例吗?换句话说,我是否需要继续分配默认值_csm.Value手动分配默认值?或者我可以依靠应用程序本身的类型(例如,ASP.NET MVC、WCF 等)来处理它?
或者,换句话来说:“异步流”的结尾在哪里,并保证 …
当我运行以下项目时,我收到以下错误。我该如何修复它?
引起原因: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) 我在 ASP.NET MVC Framework 应用程序的处理程序中收到了一些“一般”错误protected void Application_Error()。异常消息是:
\n\n从客户端检测到潜在危险的 Request.Form 值
\n
有很多方法可以触发此操作;仅一个例子是拨打电话,例如
\nhttp:/www.mywebsite.com/http:/www.mywebsite.com/\nRun Code Online (Sandbox Code Playgroud)\n我想仅为这种异常创建一个“过滤器”,并相应地重定向或管理请求。我不想禁用它,只是想管理它。我也不希望它落入通用protected void Application_Error()处理程序\xe2\x80\x94 中,或者至少,我想在该方法内部管理它,这样它就不会被我的日志记录等处理。
我该如何处理这个问题?
\nasp.net-core ×4
c# ×4
asp.net-mvc ×2
razor-pages ×2
.net-4.6.1 ×1
.net-5 ×1
.net-core ×1
ajax ×1
async-await ×1
asynchronous ×1
c#-8.0 ×1
caching ×1
concurrency ×1
exception ×1
format ×1
jpa ×1
rawrabbit ×1
regex ×1
spring-boot ×1
string ×1
validation ×1
webdeploy ×1