在数据模型中,我有一个textarea
绑定到List<string>
。
我发现在控件中输入的内容以长字符串形式返回,\r\n
在换行符处位于List<string>
的唯一元素中。
是否可以将每一行作为List<string>
中的每个元素自动返回?
答案 0 :(得分:1)
是的,可以通过编写自定义模型活页夹来实现。但是,正如格雷格(GregH)在评论中所说,仅在后端需要时,split the string at new lines可能更简单...
如果从UI角度看文本区域合适且方便,那很好。在那种情况下,我认为您坚持使用默认模型绑定程序,并且仅在需要时才转换为List<string>
(例如db insert)。
否则,某些javascript可能会提供动态的输入列表-添加输入按钮。仅通过在输入元素上使用相同的属性名称,这些默认模型绑定器将自动将这些1-to-n输入元素拾取到List<string>
中。参见Model binding to a list
这里只有两个相关的html元素:textarea
和input
。它们之间的区别在于,文本区域本身就允许多行(文本换行和/或换行符),而输入则不允许。在文本区域中按Enter键可创建新行,而在输入中按Enter键可提交整个表单。