gpt4 book ai didi

ASP.NET MVC - 将外部模型传递给编辑器模板

转载 作者:行者123 更新时间:2023-12-02 14:07:26 24 4
gpt4 key购买 nike

我的大多数表单都使用自定义编辑器模板,但是在尝试使用它们来呈现自定义对象选择器时,我发现没有简单的方法可以将有关包含上下文的信息传递给编辑器模板。

具体来说,我的主窗体呈现对域对象的编辑,并且编辑器模板需要呈现一个 AJAX 选择器,其中包含依赖于域对象 ID 的对象列表。我目前使用 additionalViewData 参数传递 ID,我认为这很容易出错,因此非常难看。

我的表单包含类似于以下的代码:

@Html.EditorFor(model => model.CategoryId, new { id = model.id })

编辑器模板包含如下代码:

@{
var domainObjectId = ViewData["id"] as int?;
}

我正在使用自定义 ModelMetadataProvider 来选择对象选择器编辑器模板,并希望使用类似的技术将有关包含模型的信息传递给编辑器模板,但这似乎并非如此有可能。

所以,我的问题是:

  1. 是否可以使用 ModelMetadataProvider 将有关包含模型的信息传递给编辑器模板?
  2. 如果没有,除了通过弱类型 additionalViewData 参数传递每条附加信息之外,是否有任何更简洁/更简单的方法来实现我正在尝试的目标?

提前致谢!

最佳答案

您需要了解 EditorTemplates 被设计为特定于类型,而不是特定于上下文。我们对AdditionalViewData 参数进行了一些思考,但这是您能得到的最好的结果。

如果您担心类型安全,请改用 ViewBag,它是 ViewData 的类型安全动态包装器。

@{
var domainObjectId = ViewBag.Id;
}

关于ASP.NET MVC - 将外部模型传递给编辑器模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16041961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com