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>
答案 0 :(得分:0)
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>