将本地化与标签标签助手一起使用

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>