2017-08-09 60 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」>。 –