Asp.net mvc 3 剃须刀不';无法识别列表()?
我的观点是这样开始的:Asp.net mvc 3 剃须刀不';无法识别列表()?,asp.net-mvc-3,razor,generic-list,Asp.net Mvc 3,Razor,Generic List,我的观点是这样开始的: @using MyNamespace.Models.Mapping @{ PlacemarkKmlModel pmodel = new PlacemarkKmlModel(); pmodel.Center.Latitude = 8.52115M; pmodel.Center.Longitude = -80.35981667M; pmodel.KmlObjectTokens kmlIDs = new List<string>();
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
这个错误是误导性的,因为它抱怨pmodel,但它似乎不喜欢List()
我的模型如下所示:
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
公共类placemarkkml模型
{
公共视口中心模型中心{get;set;}
公共列表KmlObjectTokens{get;set;}
}
试着这样做:
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
我猜您只是想在pmodel
实例上分配KmlObjectTokens
属性,在这种情况下,正确的语法是:
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens=new List();
最后一句话:视图不打算包含C代码和初始化模型。这是控制员的责任。我担心您混淆了MVC模式中的职责。尝试如下:
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
我猜您只是想在pmodel
实例上分配KmlObjectTokens
属性,在这种情况下,正确的语法是:
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens=new List();
最后一句话:视图不打算包含C代码和初始化模型。这是控制员的责任。恐怕您混淆了MVC模式中的职责。您可以绕过razor将
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
public class Helpers
{
public static List<string> GetNewStringList()
{
return new List<string>();
}
}
公共类助手
{
公共静态列表GetNewStringList()
{
返回新列表();
}
}
但是,正如Darin所说,您不应该在MVC模式中混用职责,因此该模型应该已经包含了用数据填充的KmlObjectTokens列表。您可以绕过razor将
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens kmlIDs = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", @pmodel, @ViewData)
public class PlacemarkKmlModel
{
public ViewportCenterModel Center { get; set; }
public List<string> KmlObjectTokens { get; set; }
}
@using MyNamespace.Models.Mapping
@{
PlacemarkKmlModel pmodel = new PlacemarkKmlModel();
pmodel.Center.Latitude = 8.52115M;
pmodel.Center.Longitude = -80.35981667M;
pmodel.KmlObjectTokens = new List<string>();
pmodel.KmlObjectTokens.Add("Sample1.kml");
pmodel.KmlObjectTokens.Add("Sample2.kml");
}
@Html.Partial("_Mapping", pmodel, ViewData)
public class Helpers
{
public static List<string> GetNewStringList()
{
return new List<string>();
}
}
公共类助手
{
公共静态列表GetNewStringList()
{
返回新列表();
}
}
但是,正如Darin所说,您不应该在MVC模式中混合责任,因此该模型应该已经包含填充了数据的KmlObjectTokens列表。+1关于MVC模式责任的最后一条评论+1关于MVC模式责任的最后一条评论