C# Net MVC Razor视图编辑器模板-在每次迭代之间传递变量
如果我在Razor视图中对重复表行使用编辑器模板,那么我是否需要将变量从编辑器模板的一次迭代传递到下一次迭代 例如,我的模型可能有:C# Net MVC Razor视图编辑器模板-在每次迭代之间传递变量,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,如果我在Razor视图中对重复表行使用编辑器模板,那么我是否需要将变量从编辑器模板的一次迭代传递到下一次迭代 例如,我的模型可能有: CarType CarTypeDesc CarModel 我的看法是: <table> @Html.EditorFor(m => m.CarList) </table> 如果我的模板知道前一个CarType是什么,我只能获得该视图 谢谢你的建议 标记这可以通过为以下属性创建自定义模板来实现: <table>
CarType
CarTypeDesc
CarModel
我的看法是:
<table>
@Html.EditorFor(m => m.CarList)
</table>
如果我的模板知道前一个CarType是什么,我只能获得该视图
谢谢你的建议
标记这可以通过为以下属性创建自定义模板来实现:
<table>
@for (int i = 0; i <= Model.Count; i++)
{
Html.EditorFor(m => Model[i].CarType, "CarTypeTemplate");
Html.EditorFor(m => Model[i].CarModel, "CarModelTemplate");
}
</table>
@对于(int i=0;i Model[i]。CarType,“CarTypeTemplate”);
EditorFor(m=>Model[i].CarModel,“CarModelTemplate”);
}
如果您的
CarType
或CarModel
有特定的数据/类类型,您可以创建与这些类型同名的编辑器模板,例如Views/Shared/EditorTemplates/CarType.cshtml
。Razor将使用这些模板呈现您的属性。然后您可以保留原始的@Html.EditorFor(m=>m.CarList)
call。例如,在这些模板中,您可以创建
元素,并使用左填充:20px
对于包含CarModel
的
,我建议更改视图模型,以表示不同视图的关注点,因此您的模型如下所示:
string CarType { get; set; }
string CarTypeDesc { get; set; }
IEnumerable<CarModel> CarModels { get; set; }
字符串类型{get;set;}
字符串CarTypeDesc{get;set;}
IEnumerable CarModels{get;set;}
这样一来,视图模型就不需要注意前面的一个,而更接近MVVM模式。您需要重新思考您的模型。
string CarType { get; set; }
string CarTypeDesc { get; set; }
IEnumerable<CarModel> CarModels { get; set; }