Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# @HTML扩展_C#_Asp.net Mvc 3 - Fatal编程技术网

C# @HTML扩展

C# @HTML扩展,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我会保持简单 我有以下型号: public class Person { public int Id { get; set; } public string FullName { get; set; } } 我在..\Shared\DisplayTemplates\Person.cshtml中为此模型创建了此部分视图 @model BillSplitter.Classes.Person <b>@Model.FullName</b> 以下是我想要创建的扩

我会保持简单

我有以下型号:

public class Person
{
    public int Id { get; set; }
    public string FullName { get; set; }
}
我在..\Shared\DisplayTemplates\Person.cshtml中为此模型创建了此部分视图

@model BillSplitter.Classes.Person
<b>@Model.FullName</b>
以下是我想要创建的扩展:

public static IHtmlString DisplayPersons(this HtmlHelper helper, IEnumerable<Person> model)
{
    string htmlString = "";
    foreach (Person p in model)
       string += helper.DisplayFor(p); //PROBLEM!

    return new HtmlString(htmlString);
}
publicstaticIHTMLStringdisplayPersons(此HtmlHelper助手,IEnumerable模型)
{
字符串htmlString=“”;
foreach(模型中的人员p)
string+=helper.DisplayFor(p);//问题!
返回新的HtmlString(HtmlString);
}
问题是helper没有公开函数的显示


如何在此扩展中从我的局部视图中获取
HtmlString

如果将
Person
的集合传递给
@Html.DisplayFor
,它将自动迭代并使用正确的模板显示每个
Person

@Html.DisplayFor(model => model.PersonList)

假设
PersonList
是一个
IEnumerable
,则每个
Person
将根据您的
DisplayTemplate
显示,这是您试图通过自定义HtmlHelper扩展实现的。

如果您将
Person
的集合传递给
@Html.DisplayFor
,它将自动迭代并使用正确的模板显示每个

@Html.DisplayFor(model => model.PersonList)

假设
PersonList
是一个
IEnumerable
,每个
Person
将根据您的
DisplayTemplate
显示,这是您试图通过自定义HtmlHelper扩展实现的。

使用System.Web.Mvc.Html
,尽管您不必这样做——MVC将知道如何处理
IEnumerable
;-)<代码>使用System.Web.Mvc.Html,尽管您不必这样做——Mvc将知道如何处理
IEnumerable
;-)