gpt4 book ai didi

asp.net - Asp MVC3 集合的自定义编辑器模板(空或非)

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

经过大量谷歌搜索、stackoverflow(?)和博客阅读后,我仍然无法完全解决问题。希望这个专家社区能够伸出援手!

鉴于:具有 ICollection 字段的 Company 类(一个公司可以有多个地址)。每个地址都有一些简单的字符串字段。

简短版本:

我希望用户能够向公司添加任意数量的地址。首先,我想显示一组地址文本框,然后显示“添加一个地址”按钮。 Javascript没问题,mvc部分没问题。如果不清楚,功能应该类似于: http://www.mdelrosso.com/sheepit/index.php?lng=en_GB&sec=demo3

我需要使用 MVC EditorForModel() 函数,这意味着所有配置都需要放入编辑器模板中。

到目前为止的状态:

  • 为编辑公司页面创建了 ViewModel (CompanyViewModel)
  • 将 [UIHint("Addresses")] 添加到字段 public ICollection Addresses { get;放; }
  • 已创建地址编辑器模板

在地址编辑器模板中,添加新公司时,传入的模型为 Null(这并不奇怪)。如何为额外地址创建编辑器?我尝试了多种形式(使用 Razor):

@Html.EditorFor(m => new Address());

但即使远程工作也无法生产任何东西。 (上面的行给出了错误“模板只能与字段访问、属性访问、一维数组索引或单参数自定义索引器表达式一起使用。”)

感谢您的指点!

/维克多

最佳答案

这是当前 API 的一个缺点。一种方法是使用一个子操作来负责生成插入表单

在你的 Controller 中:

[ChildActionOnly]
public ActionResult AddAddress() {
return View(new Address()); // pass an instance so view works
}

添加新 View AddAddress.cshtml

@model Address
@Html.EditorForModel()

然后在您的编辑器模板中使用

@Html.Action("AddAddress")

关于asp.net - Asp MVC3 集合的自定义编辑器模板(空或非),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399039/

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