私は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ファイルに保存することですが、すべてのフィールドはダイナミクスであるため、モデルを使用することはできません。