![](/img/trans.png)
[英]This page isn’t working .Localhost is currently unable to handle this request. HTTP ERROR 500
[英]How to handle NullProviderCultureResult? Isn't it strange to render the homepage without redirection?
在 Net 7 項目中,我在Program
中設置本地化:
builder.Services.Configure<RequestLocalizationOptions>(x => {
x.AddSupportedCultures("pt", "en");
x.AddSupportedUICultures("pt", "en");
x.SetDefaultCulture("pt");
x.RequestCultureProviders.Clear();
x.AddInitialRequestCultureProvider(new RouteDataRequestCultureProvider { RouteDataStringKey = "culture" });
});
application.UseRequestLocalization();
我有兩個 Razor 頁面(索引和關於):
Index: @page "{culture?}"
About: @page "/{culture?}/about"
我可以使用以下方式訪問主頁(索引):
/
/en
/pt
但我只能使用以下方法訪問“關於”頁面:
/en/about
/pt/about
當我嘗試訪問“/about”時,url 沒有更改,但呈現主頁。
這不奇怪嗎?
不應該重定向到索引並更改索引 Url 嗎?
或者甚至重定向到“/pt/about”,因為 PT 是默認文化?
我檢查了RouteDataRequestCultureProvider源,我有:
if (culture == null && uiCulture == null)
{
// No values specified for either so no match
return NullProviderCultureResult;
}
我不能定義出現NullProviderCultureResult
時要做什么嗎?
這可能無法回答您的問題,但至少可以解釋為什么它會這樣工作。
但我只能使用以下方法訪問“關於”頁面:
/en/about
/pt/about
當我嘗試訪問“/about”時,url 沒有更改,但呈現主頁。
這基本上是因為 url "/about" 與路由/{culture}
匹配,因此它假定"culture=about" ,結果它重定向到索引頁面,因為它與路由匹配:
Index: @page "{culture?}"
但是,由於沒有名為“about”的文化,因此在您的案例中呈現默認文化“pt”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.