2017-08-09 6 views
0

私はAsp.net mvc6かみそりに取り組んでいると私は、フォームを表示するビューを持つラベル・タグのヘルパー

"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>

とローカリゼーションを使用。そして、テキストボックスのラベルは、私が使ったモデルから来ていて、うまく動作していますが、ラベルを使ってローカライゼーションを実装しようとしています。誰もこれを解決する方法を提案することはできますか?

>

<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変数が文字列であると仮定します。

+0

こんにちは、私はMVC6で新しく、それについてはよく分かりませんが、私が望むのは、テキストボックス、ドロップダウン、オブジェクト参照などの異なるフィールドを持つモデルを持っています。 forループ内に@Html.Editor(propertyInfo.Name、null、Model.GetQualifiedPropertyName(propertyInfo.Name))を持つビューワークフローを作成し、@ modelストリングを持つtextinputという別の部分ビューに移動し、ラベルasp-for = @(ローカライザ[@ Model])class = "コントロールラベルフォームラベル">。 –

関連する問題