2016-05-12 4 views
0

かなり簡単です。これはNopCommerceのプラグインページですが、ここではこれが有効ではないと思います。MVC Razor CheckBoxFor()プロパティの内容/値が表示されない

マイモデル:フォームが正しく表示されているかどうかを確認するには簡単なチェックのため

public class CheckBoxModel 
{ 
    public string Name { get; set; } 
    public bool Checked { get; set; } 
} 


public partial class ContactUsModel : BaseNopModel 
{ 
    [AllowHtml] 
    [DisplayName("Case Type")] 
    public List<CheckBoxModel> CaseType { get; set; } 
} 

マイコントローラー:

var model = new ContactUsModel 
{ 
    CaseType = new List<CheckBoxModel>() 
    { 
     new CheckBoxModel() { Name="Civil Tax", Checked=false }, 
     new CheckBoxModel() { Name="Criminal Tax", Checked=false }, 
     new CheckBoxModel() { Name="Other Tax", Checked=false } 
    } 
} 

マイかみそり:

<div class="inputs"> 
    @Html.LabelFor(model => model.CaseType) 
    @for(int i = 0; i < Model.CaseType.Count; i++) 
    { 
     @Html.LabelFor(lbl => lbl.CaseType[i].Name) 
     @Html.CheckBoxFor(chk => chk.CaseType[i].Checked) 
    } 
</div> 

HTML:

Case Type: Name []  Name[]  Name[] 

コントローラーに割り当てられた実際の名前を表示するには、何が欠けていますか?

答えて

1

これを試してみてください:

<div class="inputs"> 
    @Html.LabelFor(model => model.CaseType) 
    @for(int i = 0; i < Model.CaseType.Count; i++) 
    { 
     @Html.DisplayFor(lbl => lbl.CaseType[i].Name) 
     @Html.CheckBoxFor(chk => chk.CaseType[i].Checked) 
    } 
</div> 

LabelForは、あなたが探しているものではありませんプロパティの名前を表示します。 DisplayForは値を出力します。

+0

AHHHHHH ....とても単純ですが、私はそれを見ることができませんでした。ありがとうございました。 – GPGVM

+0

喜んで助けました。これがあなたのために働いた場合は、回答を受け入れたものとしてマークしてください。 – DavidS

+0

本当に欲しいのは '@ Html.LabelFor(m => m.CaseType [i] .Checked、Model [i] .Name)'なので、チェックボックスに関連付けられたラベルを作成します。 'Name'プロパティ)。また、 '@Html.LabelFor(m => m.CaseType)'を '@ Html.DisplayNameFor(m => m.CaseType) 'に置き換えるべきです。' CaseType'という名前のコントロールがないからです。'

関連する問題