私はそれにいくつかのテーブルを持っています@Html.dropdowlistfor
。
javascriptを使用して選択した値を読み取ろうとしましたが、読み取られるのはすべて生成されたhtmlです。どうやって読めるの??
for (var i = 0; i < oTable.length; i++) {
**userModel.Id = oTable[i][0];**
regionModel.Users.push(userModel);
processModel.Regions.push(regionModel);
userModel = { "Id": "", "Name": ""};
regionModel = { "Id": "", "Name": "", "Users": []};
}
テーブル
<table class="tbl" id="tbl">
<thead>
<tr>
<th>
Region
</th>
<th>
Owner
</th>
</tr>
</thead>
<tbody>
@if (Model != null)
{
foreach (var item in Model.Regions)
{
<tr>
<td>
@Html.DisplayTextFor(i => item.Name)
</td>
<td>
@Html.DropDownListFor(i => item.Users, new SelectList(item.Users, "Id", "Name"))
</td>
</tr>
}
}
</tbody>
コード
function ProcessSave() {
// Step 1: Read View Data and Create JSON Object
var userModel = { "User": "", "Name": ""};
var regionModel = {"Region" : "","Name": "", "Users": []};
var processModel = { "User": "", "Description": "", "Code": "", "Regions": []};
var oTable = $('.tbl').dataTable().fnGetData();
for (var i = 0; i < oTable.length; i++) {
regionModel.Name = oTable[i][0];
userModel.User = oTable[i][1];
userModel.Name = oTable[i][1];
regionModel.Users.push(userModel);
processModel.Regions.push(regionModel);
userModel = { "Id": "", "Name": ""};
regionModel = { "Name": "", "Users": []};
}
// Step 1: Ends Here
// Set 2: Ajax Post
// Here i have used ajax post for saving/updating information
$.ajax({
url: '/Process/Create',
data: JSON.stringify(processModel),
type: 'POST',
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
if (result.Success == "1") {
window.location.href = "/Process/Index";
}
else {
alert(result.ex);
}
}
});
}
モデル
namespace TestingTool.ViewModels
{
public partial class ProcessModel
{
public string Name { get; set; }
public string Description { get; set; }
public string Code { get; set; }
public virtual ICollection<RegionModel> Regions { get; set; }
}
}
namespace TestingTool.ViewModels
{
public class RegionModel
{
public int Region { get; set; }
public string Name { get; set; }
public virtual ICollection<UserModel> Users { get; set; }
}
}
namespace TestingTool.ViewModels
{
public class UserModel
{
public int User{ get; set; }
public string Name { get; set; }
}
}
HTML出力
<table class="tbl" id="tbl">
<thead>
<tr>
<th>
Region
</th>
<th>
Owner
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
Belgium
</td>
<td>
<select id="item_Users" name="item.Users"><option value="1">Steven Segers</option>
<option value="2">Rui Martins</option>
</select>
</td>
</tr>
<tr>
<td>
France
</td>
<td>
<select id="item_Users" name="item.Users"><option value="1">Steven Segers</option>
<option value="2">Rui Martins</option>
</select>
</td>
</tr>
</tbody>
</table>