加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 集合的Asp MVC3自定义EditorTemplate(空或不)

发布时间:2020-12-16 09:59:19 所属栏目:asp.Net 来源:网络整理
导读:经过大量的谷歌搜索,stackoverflowing(?)和博客阅读我仍然无法完全解决问题.希望这个专家社区可以来救援! 鉴于: 具有字段ICollection的公司类(公司可以有多个地址).每个地址都有一些简单的字符串字段. 精简版: 我希望用户能够向公司添加任意数量的地址.
经过大量的谷歌搜索,stackoverflowing(?)和博客阅读我仍然无法完全解决问题.希望这个专家社区可以来救援!

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

精简版:

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

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

目前的状况:

>为编辑公司页面创建ViewModel(CompanyViewModel)
>将[UIHint(“地址”)]添加到字段public ICollection Addresses {get;组; }
>创建地址EditorTemplate

在Addresses EditorTemplate中,添加新公司时,传入的模型是Null(没有惊喜).如何为额外地址创建编辑器?我尝试了多种化身(使用Razor):

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

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

感谢您的任何指示!

/胜利者

解决方法

这是当前API的缺点.你可以做的一种方法是让一个负责生成插入表单的子操作

在你的控制器中:

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

添加新视图AddAddress.cshtml

@model Address
@Html.EditorForModel()

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

@Html.Action("AddAddress")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读