将本地化与标签标签助手一起使用
using localization with label tag helper
Ttextinput.cshtml
@inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer localizer
@model string
<div class="form-group col-sm-6" >
<label asp-for=@(localizer[@Model]) class=" control-label form-label "></label>
<div class="">
<input asp-for="@Model" class="form-control form-textbox"/>
<span asp-validation-for="@Model" class="text-danger "></span>
</div>
</div>
"workflowformpage.cshtml"
using REU.ViewModelContracts
@model IWorkflowViewModel
<fieldset class=" form-group form">
@if (Model.GetType().BaseType == typeof(AssignResultCollectionViewModel))
{
@Html.Partial("AssignResultCollection", Model);
}
else
{
foreach (var propertyInfo in Model.GetDisplayPropertyInfos())
{
@Html.Editor(propertyInfo.Name, null, Model.GetQualifiedPropertyName(propertyInfo.Name))
//break;
}
}
</fieldset>
我有一个显示表单的视图。文本框的标签来自我使用“”的模型,它运行良好并提供了价值,但现在我想用标签实现本地化,我试过这样的东西
<label asp-for="@localizer[@Model]" class=" control-label form-label ">
这没有给我价值。谁能建议如何解决这个问题?
<label asp-for="@localizer[@Model]" class=" control-label form-label ">
</label>
asp-for
属性旨在包含页面模型中存在的 C# 属性 的名称,而不是包含要显示的字符串。
例如:
public class MyPageModel
{
public string Email {get;set;}
}
查看:
@model MyPageModel
<label asp-for="Email"></label>
这将显示您在控制器中传递的 MyPageModel.Email
属性 的内容。因此,在 asp-for
.
中传递本地化字符串并没有什么意义
为了完成您的示例,我假设您的 @Model
变量是一个字符串。你可以使用这个:
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<label>@Localizer[@Model]</label>
Ttextinput.cshtml
@inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer localizer
@model string
<div class="form-group col-sm-6" >
<label asp-for=@(localizer[@Model]) class=" control-label form-label "></label>
<div class="">
<input asp-for="@Model" class="form-control form-textbox"/>
<span asp-validation-for="@Model" class="text-danger "></span>
</div>
</div>
"workflowformpage.cshtml"
using REU.ViewModelContracts
@model IWorkflowViewModel
<fieldset class=" form-group form">
@if (Model.GetType().BaseType == typeof(AssignResultCollectionViewModel))
{
@Html.Partial("AssignResultCollection", Model);
}
else
{
foreach (var propertyInfo in Model.GetDisplayPropertyInfos())
{
@Html.Editor(propertyInfo.Name, null, Model.GetQualifiedPropertyName(propertyInfo.Name))
//break;
}
}
</fieldset>
我有一个显示表单的视图。文本框的标签来自我使用“”的模型,它运行良好并提供了价值,但现在我想用标签实现本地化,我试过这样的东西
<label asp-for="@localizer[@Model]" class=" control-label form-label ">
这没有给我价值。谁能建议如何解决这个问题?
<label asp-for="@localizer[@Model]" class=" control-label form-label ">
</label>
asp-for
属性旨在包含页面模型中存在的 C# 属性 的名称,而不是包含要显示的字符串。
例如:
public class MyPageModel
{
public string Email {get;set;}
}
查看:
@model MyPageModel
<label asp-for="Email"></label>
这将显示您在控制器中传递的 MyPageModel.Email
属性 的内容。因此,在 asp-for
.
为了完成您的示例,我假设您的 @Model
变量是一个字符串。你可以使用这个:
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
<label>@Localizer[@Model]</label>