小编Jos*_*cht的帖子

我可以通过ajax重新加载asp 5/MVC 6 View Component吗?

我正在玩MVC 6,并且有一个用户网格,目前已注册到我的网站.在网格之上,我为搜索/过滤功能构建了一个View Component.它是通过调用

@Component.Invoke("UserSearchBar")
Run Code Online (Sandbox Code Playgroud)

其中一个要求是能够保存并重新应用下拉列表的值,以便最终用户可以快速访问他/她经常使用的搜索.我在所有已保存搜索的View Component中添加了一个下拉列表.

一旦用户保存搜索,我想重新加载UserSearchBar视图组件以更新下拉列表.

我的问题是:

  1. 按下按钮后如何通过ajax重新加载视图组件?
  2. 在这种情况下,由于视图组件和重新加载的限制,我应该使用Partial而不是视图组件吗?

我可以在View Component中使用Partial来下拉.或者以编程方式向下拉列表添加元素,但是当我单击按钮应用其中一个已保存的搜索时,我仍然会遇到重新加载视图组件的相同问题.


在编写问题时仔细考虑了问题后,我提出了一种更好(更正确?)的方法,不涉及重新加载View Component.在保存时,对保存搜索方法进行ajax调用,并在下拉列表中添加元素.在保存的搜索应用中,调用一个方法,该方法将返回已保存的搜索并应用它.

但是,我仍然想知道是否有可能(以及如何)在MVC 6中重新加载View Component.

ajax asp.net-core asp.net-core-viewcomponent

10
推荐指数
1
解决办法
6690
查看次数

模型验证错误本地化

我正在开发一个ASP.Net Core Web应用程序,需要本地化我们在应用程序中使用的所有静态字符串.

我通过IStringLocalizerFactory在Startup.cs中实现并将其添加为服务来对Controller和View字符串进行本地化.

我现在正在尝试在使用注释时向模型验证添加本地化.在我的用户模型中,我有

[Required(ErrorMessageResourceType = typeof(UserModelErrorMessages), ErrorMessageResourceName = "FullNameRequired")]
[MinLength(2, ErrorMessageResourceType = typeof(UserModelErrorMessages), ErrorMessageResourceName ="FullNameMinLength")]
[MaxLength(100, ErrorMessageResourceType =typeof(UserModelErrorMessages), ErrorMessageResourceName ="FullNameMaxLength")]
public string FullName { get; set; }
Run Code Online (Sandbox Code Playgroud)

我已经把 "FullNameRequired", "FullNameMinLength" 在UserModelErrorMessage.resx文件, "FullNameMaxLength".我还有一个UserModelErrorMessage.fr.resx文件,其中包含相同的值但法语等效消息.当浏览器设置为英语时,会显示正确的错误消息.当我将浏览器切换为使用法语('fr')语言时,我在视图和控制器中定义的静态字符串以法语显示,但数据验证消息仍以英语显示.我已经尝试过Models.User.fr.resx并且手动生成.resource文件也无济于事.

在Startup.cs ConfigureServices中:

services.AddMvc()
    .AddViewLocalization(options=>options.ResourcesPath="Resources")
    .AddDataAnnotationsLocalization();
Run Code Online (Sandbox Code Playgroud)

在Startup.cs中 - 配置

app.UseRequestLocalization(new RequestLocalizationOptions
{
    SupportedCultures = new List<CultureInfo>
        {
            new CultureInfo("fr"),
            new CultureInfo("zh"),
            new CultureInfo("tr"),
            new CultureInfo("en"),
            new CultureInfo("en-US"),
        },
        SupportedUICultures = new List<CultureInfo>
        {
            new CultureInfo("fr"),
            new CultureInfo("zh"),
            new CultureInfo("tr"),
            new CultureInfo("en"),
            new CultureInfo("en-US"),
        }
}, …
Run Code Online (Sandbox Code Playgroud)

c# validation data-annotations asp.net-core asp.net-core-localization

5
推荐指数
0
解决办法
885
查看次数