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

asp.net-mvc-3 – 使用Html.EditorFor为新记录创建空白

发布时间:2020-12-16 04:23:20 所属栏目:asp.Net 来源:网络整理
导读:使用EditorFor模板是ASP.Net MVC 3的一个非常好的功能,但是有可能让EditorFor呈现一个未填充的模板以允许创建记录吗? 或者还有其他方法可以做到这一点吗? 我试图这样做的方式如下: @Html.EditorFor(model = model) @Html.EditorFor(x = new ListBusiness.
使用EditorFor模板是ASP.Net MVC 3的一个非常好的功能,但是有可能让EditorFor呈现一个未填充的模板以允许创建记录吗?

或者还有其他方法可以做到这一点吗?

我试图这样做的方式如下:

@Html.EditorFor(model => model)
    @Html.EditorFor(x => new List<Business.ViewModel.Affiliate.Contact>())
    @Html.EditorFor(new List<Business.ViewModel.Affiliate.Contact>())
    @Html.EditorFor(new Business.ViewModel.Affiliate.Contact())

第一个显然有效,但随后的(显示我正在尝试做的)都会失败并出现以下错误:

Templates can be used only with field access,property access,single-dimension array index,or single-parameter custom indexer expressions.

有问题的模型是:

IEnumerable<Business.ViewModel.Affiliate.Contact>

解决方法

控制器负责准备将传递给视图的视图模型.因此,如果您需要以5个空联系人行初始化视图模型,则只需在控制器中执行此操作:
public ActionResult Index()
{
    var model = new MyViewModel
    {
        // Add 5 empty contacts
        Contacts = Enumerable.Range(1,5).Select(x => new Contact()).ToList()
    };
    return View(model);
}

并在您的视图中像往常一样使用EditorFor助手:

@model MyViewModel
...
@Html.EditorFor(x => x.Contacts)

这将为我们添加到Contacts集合中的5个元素中的每个元素呈现相应的编辑器模板.

(编辑:李大同)

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

    推荐文章
      热点阅读