C# 从MVC中的视图向控制器发送字符串的动态列表

C# 从MVC中的视图向控制器发送字符串的动态列表,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我有这样的看法: <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 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>
public virtual IList<string> Parts { get; set; }

@LabelFor(model=>model.Parts)
    +添加部分
    ,一个类似这样的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();
    }
    
    函数addPart(名称){
    变量输入=$('').attr(“名称”、“部分”);
    if(name!=null)
    输入.val(名称);
    $(“
  • ”) .append(输入) .append($('') .html(“X”) .on(“单击”,函数(){ var div=$(此) div.parent().slideUp(函数(){$(this.remove();}); }) .addClass(“删除”)) .appendTo($('#parts')).hide().slideDown(); }
  • 还有这样一个模型:

    <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>
    
    public virtual IList<string> Parts { get; set; }
    
    公共虚拟IList部分{get;set;}
    
    我的问题是,;是否可以直接从视图中元素的动态数量填充字符串的模型列表。或者我是否必须执行以下操作:

    public ActionResult Create(Model model, IList<string> Parts)
    {
        model.Parts = Parts;
    
    var input = $('<input>').attr("name", "Parts[" + index + "]");
    
    public ActionResult创建(模型、IList部分)
    {
    模型.零件=零件;
    

    非常感谢您提供相关信息的任何帮助或链接。我一直在搜索,但找不到有关此类问题的相关信息。

    感谢此问题回答:我发现如果您将输入名称更改为include and index([I]),它会正确传递字符串

    解决方案:

    在创建输入时,我将javascript更改为以下代码:

    public ActionResult Create(Model model, IList<string> Parts)
    {
        model.Parts = Parts;
    
    var input = $('<input>').attr("name", "Parts[" + index + "]");
    
    var input=$('').attr(“名称”,“部分[“+索引+”]);
    
    查看此答案谢谢,这正是我要找的。