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

asp.net-core – 如何使用asp-for标签绑定数组?

发布时间:2020-12-16 03:59:58 所属栏目:asp.Net 来源:网络整理
导读:我想问一下,如何在Asp.NET Core MVC中绑定一个数组? input type="text" asp-for="Requests[@index].Name" / 它在旧版本的ASP MVC中运行良好. 此示例显示“内部服务器错误”. “在编译处理此请求所需的资源期间发生错误.请查看以下特定错误详细信息并适当修
我想问一下,如何在Asp.NET Core MVC中绑定一个数组?

<input type="text" asp-for="Requests[@index].Name" />

它在旧版本的ASP MVC中运行良好.
此示例显示“内部服务器错误”.

“在编译处理此请求所需的资源期间发生错误.请查看以下特定错误详细信息并适当修改源代码.”

ViewModel类示例:

public class ViewModel
{
    public List<Model> Requests {get;set;}
}

模型类示例:

public class Model
{
    public string Name {get;set;}
}

它应该如何工作?提交带有这些输入的表单后,MVC应自动在ModelView中创建并映射列表.这就是它在ASP.NET MVC 4中的工作方式.

解决方法

你需要使用一个可以编译的asp-for的有效表达式,基本上如果index是你在for循环中使用的变量那么你会写< input asp-for =“@ Model.Requests [index] .Name “/>

完整示例(我使用i作为循环变量而不是索引):

@model MyProject.TodoItemList

<ul>
@for (int i = 0; i < Model.Requests.Count; i++)
{
    <li>                
        <label asp-for="@Model.Requests[i].Name"></label>
        <input asp-for="@Model.Requests[i].Name"/>
        @* Or the old html helpers if you prefer
           @Html.DisplayFor(model => model.Requests[i].Name)
        *@                
    </li>
}
</ul>

有关详细信息,请在the docs中检查表达式名称和集合

(编辑:李大同)

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

    推荐文章
      热点阅读