我有这样的观点:
<div class="editor-label">
@Html.LabelFor(model => model.Parts)
</div>
<div class="editor-field">
<ul id="parts"></ul>
<span id="parts-button" onclick="addPart()">+ Add part</span>
</div>
,像这样的JS:
function addPart(name) {
var input = $('<input>').attr("name", "Parts");
if (name != null)
input.val(name);
$('<li>')
.append(input)
.append($('<div>')
.html("X")
.on("click", function () {
var div = $(this)
div.parent().slideUp(function () { $(this).remove(); });
})
.addClass("delete"))
.appendTo($('#parts')).hide().slideDown();
}
和这样的模型:
public virtual IList<string> Parts { get; set; }
我的问题是;是否可以直接从视图中的动态元素数填充模型的字符串列表。或者我必须执行以下操作:
public ActionResult Create(Model model, IList<string> Parts)
{
model.Parts = Parts;
我们非常感谢您提供相关信息的任何帮助或链接。我一直在搜索,但无法找到有关此类问题的相关信息。
答案 0 :(得分:0)
感谢回答这个问题:Generate list in view and pass it to controller我发现如果你将输入名称改为include和index([i]),它会正确传递字符串。
解决方案:
创建输入时,我将javascript更改为以下代码:
var input = $('<input>').attr("name", "Parts[" + index + "]");