Razor MVC 4剃须刀我可以';t在foreach中显示列表项

Razor MVC 4剃须刀我可以';t在foreach中显示列表项,razor,asp.net-mvc-4,Razor,Asp.net Mvc 4,我想显示一个列表的内容,该列表是我的模型的一个属性,但呈现的HTML代码是空的,下面是我的代码: 看法 调试: 还有其他方法吗?如果列表中有项目,并且CriteriaType和TextToSearch属性不为null或为空,则应该可以使用。还要确保没有任何CSS规则隐藏div。您可以使用FireBug或Chrome Developer工具栏检查DOM,并分析应用于生成的div的所有CSS规则。您的模型是什么样子的?Razor可能正在调用ToString()以显示您的数据 请给我们看一下控制器的

我想显示一个列表的内容,该列表是我的模型的一个属性,但呈现的HTML代码是空的,下面是我的代码:

看法

调试:


还有其他方法吗?

如果列表中有项目,并且
CriteriaType
TextToSearch
属性不为null或为空,则应该可以使用。还要确保没有任何CSS规则隐藏div。您可以使用FireBug或Chrome Developer工具栏检查DOM,并分析应用于生成的div的所有CSS规则。

您的模型是什么样子的?Razor可能正在调用ToString()以显示您的数据

请给我们看一下控制器的代码好吗?“CriteriaType”和“TextToSearch”都有值。foreach循环中的所有HTML代码都没有显示,我不明白为什么。在循环之外,HTML代码以样式正确显示。这可能意味着
Model.CriteriaListToSearch
为空。我在视图中放置了一个断点,列表不是空的,我有一个带2的条件values@Evilduky您需要在控制器的返回视图(模型)中设置模型数据的路径,以便从操作中查看'是查看我的控制器代码:
[HttpPost]公共操作结果AddCriteria(搜索模型){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);}
旨在询问标准,但我所要做的就是向下滚动。我没有发现任何看起来不对劲的地方。我试过一些东西。你已经通过了。在没有其他信息的情况下,此时我要做的是检查正确的包含、库版本、重新启动窗口以及其他不太有用的一般建议。我注意到循环在其他地方使用了
“Namespace.Models.Criteria”和
“OneSelfSite.Models.Criteria”。“Namespace”可能只是为了解决这个问题,但是你能用“@foreach(模型中的var crit…”替换它吗测试不太可能发生的有损播放事件?非常感谢您的调查!我不知道我的代码出了什么问题,但我尝试通过使用Ajax.beginForm而不是Html.beginForm来改变它,以填充我的div
dynamicaly,就像这里一样,它可以工作!
@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;
}
[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);
}