1

我正在处理一个网络表单,在这个网络表单中我有多个同名的输入。

<% using(Html.BeginForm("Create", "Object", Method.Post))
   {
foreach(var prop in Model.Properties)   
{%>
    <div id="prop-<%= prop.name %>">
        <input name="<%= prop.name%>" value="" type="text" />

    <% if(prop.type == "Lines") 
       {%>
        <input type="button" value="Add More" onclick="$('#prop-<%= prop.name %>').append('<input name=\'<%= prop.name%>\'></input>');" />
     <%}%>
  <%}%>

现在在 C# 中我得到这样的结果

var result = "item_name1,item_name2,item_name3"

但如果用户在一个字段中输入逗号,例如字段 2,结果将是:

var result = "item_name1,item,name2,item_name3"

现在我不知道正确的输入是什么

注意:我不能使用对象和模型,只能使用 FormCollection,在此先感谢

我的 C# 代码:

[HttpPost]public ActionResult Edit(string ObjectId, string Code, FormCollection form){
        foreach (var key in form.AllKeys)
        {
                var prop_name = key;

                var property = db.Properties.First(prop => prop.Name == prop_name);
                if (property.ReadOnly == true)
                {
                    continue;
                }

                string EmptyValue = property.EmptyValue;

                //for lines we need to split the incoming value
                var values = form[key].Split(',');
                int rowNo = 0;
                foreach (var value in values)
                {
                    var temp = new DI_Value();
                    //Here we get value according to it's data type
                    temp.Value = GetValue(value, property.DataType); 
                    PropertyName = prop_name;
                    temp.RowNumber = rowNo++;
                    temp.DataType = property.DataType;
                    temp.EmptyValue = EmptyValue;

                    data.Add(temp);
                }
            }
        }
     }

我正在使用 Json 将数据发送到服务器:

    $.ajax({ type: 'POST', url: submit_url, data: $(form).serialize(),
        success: function (result) {
            if (result.error) {
                setStatusMsg(result.error_text, 'error');
            }
            else {
                setStatusMsg(success_message, 'success');
            });

逻辑是获取表单并将其保存到 XML 文件,但所有字段都是动态的,因为我不能使用模型

4

0 回答 0