1

私はWebフォームに取り組んでいますが、このWebフォームには、同じ名前の複数の入力があります。

<% 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などの1つのフィールドにコンマを入力すると、結果は次のようになります。

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