0

モデルのプロパティであるリストのコンテンツを表示したいのですが、レンダリングされた HTML コードは空です。ここに私のコード:

意見

@foreach (Namespace.Models.Criteria crit in Model.CriteriaListToSearch)
{
    <div class="selectedItem">@crit.CriteriaType : @crit.TextToSearch</div>
}

モデルを見る

public class Search
{
    public IEnumerable<EquipmentModel> Equipments;
    public IEnumerable<SparePartsModel> SpareParts;
    public List<Criteria> CriteriaListToSearch;

    public Search()
    {
        CriteriaListToSearch = new List<Criteria>();
    }

    #region Criteria

    private List<SelectListItem> _CriteriaList;                
    public List<SelectListItem> CriteriaList
    {
        get
        {
            if (_CriteriaList == null)
            {
                _CriteriaList = new List<SelectListItem>(4) 
                { 
                    new SelectListItem { Value = "", Text = "Select an option"},
                    new SelectListItem { Value = "1", Text = "Name/Number"},
                    new SelectListItem { Value = "2", Text = "Type"},
                    new SelectListItem { Value = "3", Text = "Description"}
                };
            }

            return _CriteriaList;
        }
    }

    [Display(Name = "Options")]
    [Required(ErrorMessage = "Please select an option.")]
    public string CriteriaSelected { get; set; }

    [Required(AllowEmptyStrings = false, ErrorMessage = "The search field is required.")]
    [Display(Name = "Search")]
    [StringLength(100)]
    public string TextToSearch { get; set; }

    #endregion
}

public class Criteria
{
    public string CriteriaType;
    public string TextToSearch;
}

Model.CriteriaListToSearch は私のリストです。項目が 1 つあります。ブレーク ポイントでチェックしました。タグを前に付けて表示しようとしましたが、失敗しました。

[HttpPost]
public ActionResult AddCriteria(Search model)
{ 
   if (model == null) model = new Search();
   Criteria crit = new Criteria();
   crit.CriteriaType = model.CriteriaSelected;
   crit.TextToSearch = model.TextToSearch;
   model.CriteriaListToSearch.Add(crit);
   return View("Index", model);
}

デバッグ:

忙しい猫

これを行う別の方法はありますか?

4

2 に答える 2

0

あなたのモデルはどのように見えますか? Razor は、データを表示するために ToString() を呼び出している可能性があります。

于 2012-09-19T16:59:21.287 に答える
0

リスト内に項目があり、CriteriaTypeおよびTextToSearchプロパティが null または空でない場合、これは機能するはずです。また、div を隠している CSS ルールがないことを確認してください。FireBug または Chrome Developer Toolbar を使用して DOM を検査し、生成された div に適用されたすべての CSS ルールを分析できます。

于 2012-09-19T15:39:59.023 に答える