【发布时间】:2013-04-16 16:11:10
【问题描述】:
我的大部分表单都使用自定义编辑器模板,但在尝试使用它们呈现自定义对象选择器时,我发现没有简单的方法将有关包含上下文的信息传递给编辑器模板。
具体来说,我的主表单呈现域对象的编辑,编辑器模板需要呈现一个 AJAX 选择器,其中包含依赖于域对象 ID 的对象列表。我目前使用additionalViewData 参数传递ID,我认为这很容易出错,因此非常难看。
我的表单包含类似于以下的代码:
@Html.EditorFor(model => model.CategoryId, new { id = model.id })
编辑器模板包含如下代码:
@{
var domainObjectId = ViewData["id"] as int?;
}
我正在使用自定义ModelMetadataProvider 来选择对象选择器编辑器模板,并希望使用类似的技术将有关包含模型的信息传递给编辑器模板,但这似乎是不可能的。
所以,我的问题是:
- 是否可以使用
ModelMetadataProvider将有关包含模型的信息传递给编辑器模板? - 如果没有,除了通过弱类型
additionalViewData参数传递每条附加信息之外,是否有任何更简洁/更简单的方法来实现我正在尝试的目标?
提前致谢!
【问题讨论】:
标签: asp.net .net asp.net-mvc razor mvc-editor-templates