2017-08-09 49 views
0

使用本地化与标签标签帮手

"textinput.cshtml" 
 
@inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer localizer 
 
@model string 
 
<div class="form-group col-sm-6" > 
 
    <label [email protected](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>

我的工作在Asp.net mvc6剃刀和我有显示形式的视图。和文本框的标签来自我使用的模型“”,它运行良好,并给出了价值,但现在我想用标签实现本地化,我尝试了这样的“”,它不给我价值。任何人都可以建议如何解决此问题?

>

<label asp-for="@localizer[@Model]" class=" control-label form-label "></label>

回答

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> 
+0

嗨,我是新的MVC6和不太了解它,但我想要的是我有一个不同的领域,如文本框,下拉,对象参考等模型,我有在for循环中具有@ Html.Editor(propertyInfo.Name,null,Model.GetQualifiedPropertyName(propertyInfo.Name))的视图工作流,并转到另一个称为textinput的分部视图,其中我有@model字符串,并显示字段我使用<标签asp-for = @(localizer [@Model])class =“control-label form-label”>。 –